[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "BelowMinimumK", "type": "error" }, { "inputs": [], "name": "DepositsNotEqual", "type": "error" }, { "inputs": [], "name": "FactoryAlreadySet", "type": "error" }, { "inputs": [], "name": "InsufficientInputAmount", "type": "error" }, { "inputs": [], "name": "InsufficientLiquidity", "type": "error" }, { "inputs": [], "name": "InsufficientLiquidityBurned", "type": "error" }, { "inputs": [], "name": "InsufficientLiquidityMinted", "type": "error" }, { "inputs": [], "name": "InsufficientOutputAmount", "type": "error" }, { "inputs": [], "name": "InvalidTo", "type": "error" }, { "inputs": [], "name": "IsPaused", "type": "error" }, { "inputs": [], "name": "K", "type": "error" }, { "inputs": [], "name": "NotEmergencyCouncil", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "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": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Claim", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Fees", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount0In", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1In", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount0Out", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount1Out", "type": "uint256" } ], "name": "Swap", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "reserve0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "reserve1", "type": "uint256" } ], "name": "Sync", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "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": [], "name": "blockTimestampLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimFees", "outputs": [ { "internalType": "uint256", "name": "claimed0", "type": "uint256" }, { "internalType": "uint256", "name": "claimed1", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimable0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimable1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "currentCumulativePrices", "outputs": [ { "internalType": "uint256", "name": "reserve0Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "blockTimestamp", "type": "uint256" } ], "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": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "address", "name": "tokenIn", "type": "address" } ], "name": "getAmountOut", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReserves", "outputs": [ { "internalType": "uint256", "name": "_reserve0", "type": "uint256" }, { "internalType": "uint256", "name": "_reserve1", "type": "uint256" }, { "internalType": "uint256", "name": "_blockTimestampLast", "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": "index0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "index1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token0", "type": "address" }, { "internalType": "address", "name": "_token1", "type": "address" }, { "internalType": "bool", "name": "_stable", "type": "bool" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lastObservation", "outputs": [ { "components": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "reserve0Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1Cumulative", "type": "uint256" } ], "internalType": "struct Pool.Observation", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "metadata", "outputs": [ { "internalType": "uint256", "name": "dec0", "type": "uint256" }, { "internalType": "uint256", "name": "dec1", "type": "uint256" }, { "internalType": "uint256", "name": "r0", "type": "uint256" }, { "internalType": "uint256", "name": "r1", "type": "uint256" }, { "internalType": "bool", "name": "st", "type": "bool" }, { "internalType": "address", "name": "t0", "type": "address" }, { "internalType": "address", "name": "t1", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "liquidity", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "observationLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "observations", "outputs": [ { "internalType": "uint256", "name": "timestamp", "type": "uint256" }, { "internalType": "uint256", "name": "reserve0Cumulative", "type": "uint256" }, { "internalType": "uint256", "name": "reserve1Cumulative", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "poolFees", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "points", "type": "uint256" } ], "name": "prices", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "granularity", "type": "uint256" } ], "name": "quote", "outputs": [ { "internalType": "uint256", "name": "amountOut", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve0CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reserve1CumulativeLast", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenIn", "type": "address" }, { "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "uint256", "name": "points", "type": "uint256" }, { "internalType": "uint256", "name": "window", "type": "uint256" } ], "name": "sample", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "__name", "type": "string" } ], "name": "setName", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "__symbol", "type": "string" } ], "name": "setSymbol", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "skim", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "stable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "supplyIndex0", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "supplyIndex1", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount0Out", "type": "uint256" }, { "internalType": "uint256", "name": "amount1Out", "type": "uint256" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "swap", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "sync", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token1", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokens", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "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" } ]
61016060405260006019556000601a553480156200001c57600080fd5b50604080516020808201835260008083528351808501855260018152603160f81b818401528451808401865282815285519384019095529082529192839291600362000069838262000269565b50600462000078828262000269565b506200008a915083905060056200013f565b60e0526200009a8160066200013f565b61010052815160208084019190912061012052815190820120610140524660a0526200012a6101205161014051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052506001600955620003aa565b60006020835110156200015f57620001578362000178565b905062000172565b816200016c848262000269565b50600090505b92915050565b600080829050601f81511115620001af578260405163305a27a960e01b8152600401620001a6919062000335565b60405180910390fd5b8051620001bc8262000385565b179392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620001ef57607f821691505b6020821081036200021057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026457600081815260208120601f850160051c810160208610156200023f5750805b601f850160051c820191505b8181101562000260578281556001016200024b565b5050505b505050565b81516001600160401b03811115620002855762000285620001c4565b6200029d81620002968454620001da565b8462000216565b602080601f831160018114620002d55760008415620002bc5750858301515b600019600386901b1c1916600185901b17855562000260565b600085815260208120601f198616915b828110156200030657888601518255948401946001909101908401620002e5565b5085821015620003255787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b81811015620003645785810183015185820160400152820162000346565b506000604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620002105760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516151cf6200040560003960006131ff015260006131d7015260006115fe015260006115d10152600061312f0152600061315a0152600061318501526151cf6000f3fe60806040523480156200001157600080fd5b5060043610620003305760003560e01c806384b0196e11620001bf578063bf944dbc11620000fc578063d294f09311620000af578063e4bbb5a81162000086578063e4bbb5a814620007f0578063ebeb31db1462000807578063f140a35a1462000810578063fff6cae9146200082757600080fd5b8063d294f09314620007b8578063d505accf14620007c2578063dd62ed3e14620007d957600080fd5b8063bf944dbc146200075b578063c245febc1462000765578063c45a0155146200076f578063c47f00271462000783578063c5700a02146200079a578063d21220a714620007a457600080fd5b80639f767c881162000172578063a9059cbb1162000149578063a9059cbb146200070c578063b84c82461462000723578063bc25cf77146200073a578063bda39cad146200075157600080fd5b80639f767c8814620006af578063a1ac4d1314620006d2578063a457c2d714620006f557600080fd5b806384b0196e14620005ee57806389afcb44146200060d5780638a7b8cf2146200063a57806395d89b4114620006675780639d63848a14620006715780639e8cc04b146200069857600080fd5b8063313ce567116200028e578063443cb4bc11620002415780635a76f25e11620002185780635a76f25e146200058a5780636a627842146200059457806370a0823114620005ab5780637ecebe0014620005d757600080fd5b8063443cb4bc14620005465780634d5a9f8a14620005505780635881c475146200057357600080fd5b8063313ce567146200049457806332c0defd14620004a45780633358095914620004ae5780633644e51514620004c2578063392f37e914620004cc57806339509351146200052f57600080fd5b806318160ddd11620002e757806318160ddd14620004115780631df8c7171462000424578063205aabf1146200042e57806322be3de1146200045157806323b872dd1462000466578063252c09d7146200047d57600080fd5b8063022c0d9f146200033557806306fdde03146200034e5780630902f1ac1462000370578063095ea7b314620003965780630dfe168114620003be57806313345fe114620003eb575b600080fd5b6200034c62000346366004620040d9565b62000831565b005b6200035862000ebb565b6040516200036791906200419d565b60405180910390f35b6014546015546016545b6040805193845260208401929092529082015260600162000367565b620003ad620003a7366004620041b2565b62000f55565b604051901515815260200162000367565b600d54620003d2906001600160a01b031681565b6040516001600160a01b03909116815260200162000367565b62000402620003fc366004620041e1565b62000f71565b6040516200036791906200425c565b6002545b60405190815260200162000367565b6200037a6200119e565b620004156200043f36600462004271565b601c6020526000908152604090205481565b600c54620003ad90600160a01b900460ff1681565b620003ad6200047736600462004291565b62001219565b6200037a6200048e366004620042d7565b62001243565b6040516012815260200162000367565b6200041560195481565b600f54620003d2906001600160a01b031681565b6200041562001277565b601254601354601454601554600c54600d54600e54604080519788526020880196909652948601939093526060850191909152600160a01b900460ff16151560808401526001600160a01b0390811660a08401521660c082015260e00162000367565b620003ad62000540366004620041b2565b62001288565b6200041560145481565b620004156200056136600462004271565b601d6020526000908152604090205481565b6200040262000584366004620042f1565b620012b0565b6200041560155481565b62000415620005a536600462004271565b620012c1565b62000415620005bc36600462004271565b6001600160a01b031660009081526020819052604090205490565b62000415620005e836600462004271565b620015a3565b620005f8620015c2565b60405162000367979695949392919062004329565b620006246200061e36600462004271565b6200164f565b6040805192835260208301919091520162000367565b6200064462001945565b604080518251815260208084015190820152918101519082015260600162000367565b62000358620019cb565b600d54600e54604080516001600160a01b0393841681529290911660208301520162000367565b62000415620006a9366004620042f1565b620019dc565b62000415620006c036600462004271565b601b6020526000908152604090205481565b62000415620006e336600462004271565b601e6020526000908152604090205481565b620003ad62000706366004620041b2565b62001a5a565b620003ad6200071d366004620041b2565b62001aea565b6200034c620007343660046200439f565b62001afa565b6200034c6200074b36600462004271565b62001bba565b62000415601a5481565b6200041560175481565b6200041560185481565b601054620003d2906001600160a01b031681565b6200034c620007943660046200439f565b62001d07565b6200041560165481565b600e54620003d2906001600160a01b031681565b6200062462001dc2565b6200034c620007d3366004620043f5565b62001eed565b62000415620007ea3660046200446d565b6200205d565b6200034c62000801366004620044ba565b62002088565b60115462000415565b62000415620008213660046200450c565b62002536565b6200034c62002606565b6200083b6200270a565b601060009054906101000a90046001600160a01b03166001600160a01b031663b187bd266040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200088f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008b5919062004534565b15620008d457604051631309a56360e01b815260040160405180910390fd5b84158015620008e1575083155b1562000900576040516342301c2360e01b815260040160405180910390fd5b6014546015548187101580620009165750808610155b15620009355760405163bb55fd2760e01b815260040160405180910390fd5b600d54600e5460009182916001600160a01b0391821691908116908916821480620009715750806001600160a01b0316896001600160a01b0316145b156200099057604051630521f43160e31b815260040160405180910390fd5b8a15620009ad57620009ad6001600160a01b0383168a8d62002765565b8915620009ca57620009ca6001600160a01b0382168a8c62002765565b861562000a3c57604051639a7bff7960e01b81526001600160a01b038a1690639a7bff799062000a079033908f908f908e908e9060040162004554565b600060405180830381600087803b15801562000a2257600080fd5b505af115801562000a37573d6000803e3d6000fd5b505050505b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa15801562000a81573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000aa79190620045a0565b6040516370a0823160e01b81523060048201529094506001600160a01b038216906370a0823190602401602060405180830381865afa15801562000aef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b159190620045a0565b925050506000898562000b299190620045d0565b831162000b3857600062000b50565b62000b448a86620045d0565b62000b509084620045d0565b9050600062000b608a86620045d0565b831162000b6f57600062000b87565b62000b7b8a86620045d0565b62000b879084620045d0565b90508115801562000b96575080155b1562000bb55760405163098fb56160e01b815260040160405180910390fd5b600d54600e546001600160a01b039182169116831562000c7a57601054600c5460405163cc56b2c560e01b8152306004820152600160a01b90910460ff161515602482015262000c7a91612710916001600160a01b039091169063cc56b2c590604401602060405180830381865afa15801562000c36573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c5c9190620045a0565b62000c689087620045e6565b62000c74919062004616565b620027b9565b821562000d2c57601054600c5460405163cc56b2c560e01b8152306004820152600160a01b90910460ff161515602482015262000d2c91612710916001600160a01b039091169063cc56b2c590604401602060405180830381865afa15801562000ce8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d0e9190620045a0565b62000d1a9086620045e6565b62000d26919062004616565b62002873565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa15801562000d71573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d979190620045a0565b6040516370a0823160e01b81523060048201529096506001600160a01b038216906370a0823190602401602060405180830381865afa15801562000ddf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e059190620045a0565b945062000e13888862002927565b62000e1f878762002927565b101562000e3f5760405163a932492f60e01b815260040160405180910390fd5b505062000e4f8484888862002a46565b60408051838152602081018390528082018d9052606081018c905290516001600160a01b038b169133917fb3e2773606abfd36b5bd91394b3a54d1398336c65005baf7bf7a05efeffaf75b9181900360800190a350505050505062000eb46001600955565b5050505050565b6060600a805462000ecc9062004639565b80601f016020809104026020016040519081016040528092919081815260200182805462000efa9062004639565b801562000f4b5780601f1062000f1f5761010080835404028352916020019162000f4b565b820191906000526020600020905b81548152906001019060200180831162000f2d57829003601f168201915b5050505050905090565b60003362000f6581858562002bec565b60019150505b92915050565b606060008367ffffffffffffffff81111562000f915762000f916200466f565b60405190808252806020026020018201604052801562000fbb578160200160208202803683370190505b5060115490915060009062000fd390600190620045d0565b9050600062000fe38587620045e6565b62000fef9083620045d0565b90506000805b838310156200118e576200100a878462004685565b91506000601184815481106200102457620010246200469b565b906000526020600020906003020160000154601184815481106200104c576200104c6200469b565b9060005260206000209060030201600001546200106a9190620045d0565b9050600081601186815481106200108557620010856200469b565b90600052602060002090600302016001015460118681548110620010ad57620010ad6200469b565b906000526020600020906003020160010154620010cb9190620045d0565b620010d7919062004616565b905060008260118781548110620010f257620010f26200469b565b906000526020600020906003020160020154601187815481106200111a576200111a6200469b565b906000526020600020906003020160020154620011389190620045d0565b62001144919062004616565b9050620011548c8e848462002d14565b8885815181106200116957620011696200469b565b602090810291909101015250505060010162001186878462004685565b925062000ff5565b509293505050505b949350505050565b6017546018544260008080620011bd6014546015546016549192909190565b92509250925083811462001211576000620011d98286620045d0565b9050620011e78185620045e6565b620011f3908862004685565b9650620012018184620045e6565b6200120d908762004685565b9550505b505050909192565b6000336200122985828562002ee9565b6200123685858562002f6a565b60019150505b9392505050565b601181815481106200125457600080fd5b600091825260209091206003909102018054600182015460029092015490925083565b60006200128362003122565b905090565b60003362000f658185856200129e83836200205d565b620012aa919062004685565b62002bec565b606062001196848484600162000f71565b6000620012cd6200270a565b601454601554600d546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156200131d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013439190620045a0565b600e546040516370a0823160e01b81523060048201529192506000916001600160a01b03909116906370a0823190602401602060405180830381865afa15801562001392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620013b89190620045a0565b90506000620013c88584620045d0565b90506000620013d88584620045d0565b90506000620013e660025490565b905080600003620014d6576103e86200140a620014048486620045e6565b62003250565b620014169190620045d0565b97506200142760016103e862003355565b600c54600160a01b900460ff1615620014d0576013546200145183670de0b6b3a7640000620045e6565b6200145d919062004616565b6012546200147485670de0b6b3a7640000620045e6565b62001480919062004616565b146200149f576040516305026bfd60e11b815260040160405180910390fd5b6402540be400620014b1848462002927565b11620014d0576040516321c69d6f60e11b815260040160405180910390fd5b62001515565b6200151287620014e78386620045e6565b620014f3919062004616565b87620015008486620045e6565b6200150c919062004616565b62003426565b97505b876000036200153757604051633489be7560e21b815260040160405180910390fd5b62001543898962003355565b620015518585898962002a46565b604080518481526020810184905233917f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f910160405180910390a2505050505050506200159e6001600955565b919050565b6001600160a01b03811660009081526007602052604081205462000f6b565b600060608082808083620015f87f000000000000000000000000000000000000000000000000000000000000000060056200343e565b620016257f000000000000000000000000000000000000000000000000000000000000000060066200343e565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6000806200165c6200270a565b601454601554600d54600e546040516370a0823160e01b81523060048201526001600160a01b03928316929091169060009083906370a0823190602401602060405180830381865afa158015620016b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620016dd9190620045a0565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa15801562001728573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200174e9190620045a0565b306000908152602081905260409020546002549192509080620017728584620045e6565b6200177e919062004616565b9950806200178d8484620045e6565b62001799919062004616565b9850891580620017a7575088155b15620017c65760405163749383ad60e01b815260040160405180910390fd5b620017d23083620034ef565b620017e86001600160a01b0387168c8c62002765565b620017fe6001600160a01b0386168c8b62002765565b6040516370a0823160e01b81523060048201526001600160a01b038716906370a0823190602401602060405180830381865afa15801562001843573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018699190620045a0565b6040516370a0823160e01b81523060048201529094506001600160a01b038616906370a0823190602401602060405180830381865afa158015620018b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018d79190620045a0565b9250620018e784848a8a62002a46565b604080518b8152602081018b90526001600160a01b038d169133917f5d624aa9c148153ab3446c1b154f660ee7701e549fe9b62dab7171b1c80e6fa2910160405180910390a35050505050505050620019406001600955565b915091565b6200196a60405180606001604052806000815260200160008152602001600081525090565b601180546200197c90600190620045d0565b815481106200198f576200198f6200469b565b90600052602060002090600302016040518060600160405290816000820154815260200160018201548152602001600282015481525050905090565b6060600b805462000ecc9062004639565b600080620019ee858585600162000f71565b8051909150600090815b8181101562001a425783818151811062001a165762001a166200469b565b60200260200101518362001a2b919062004685565b92508062001a3981620046b1565b915050620019f8565b5062001a4f858362004616565b979650505050505050565b6000338162001a6a82866200205d565b90508381101562001ad05760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b62001adf828686840362002bec565b506001949350505050565b60003362000f6581858562002f6a565b600c60009054906101000a90046001600160a01b03166001600160a01b0316637778960e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001b4e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001b749190620046cd565b6001600160a01b0316336001600160a01b03161462001ba65760405163c560129360e01b815260040160405180910390fd5b600b62001bb58284836200473f565b505050565b62001bc46200270a565b600d54600e546014546040516370a0823160e01b81523060048201526001600160a01b03938416939092169162001c6491859185906370a0823190602401602060405180830381865afa15801562001c20573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001c469190620045a0565b62001c529190620045d0565b6001600160a01b038516919062002765565b6015546040516370a0823160e01b815230600482015262001cf79185916001600160a01b038516906370a0823190602401602060405180830381865afa15801562001cb3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001cd99190620045a0565b62001ce59190620045d0565b6001600160a01b038416919062002765565b505062001d046001600955565b50565b600c60009054906101000a90046001600160a01b03166001600160a01b0316637778960e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001d5b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001d819190620046cd565b6001600160a01b0316336001600160a01b03161462001db35760405163c560129360e01b815260040160405180910390fd5b600a62001bb58284836200473f565b6000803362001dd18162003633565b6001600160a01b0381166000908152601d6020908152604080832054601e9092529091205490935091508215158062001e0a5750600082115b1562001ee8576001600160a01b038181166000818152601d60209081526040808320839055601e90915280822091909155600f54905163299e7ae760e11b8152600481019290925260248201869052604482018590529091169063533cf5ce90606401600060405180830381600087803b15801562001e8857600080fd5b505af115801562001e9d573d6000803e3d6000fd5b505060408051868152602081018690526001600160a01b03851693508392507f865ca08d59f5cb456e85cd2f7ef63664ea4f73327414e9d8152c4158b0e94645910160405180910390a35b509091565b8342111562001f3f5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640162001ac7565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988888862001f708c620037a6565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600062001fcd82620037ce565b9050600062001fdf82878787620037fe565b9050896001600160a01b0316816001600160a01b031614620020445760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640162001ac7565b620020518a8a8a62002bec565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6010546001600160a01b031615620020b3576040516302a98a3760e31b815260040160405180910390fd5b601080546001600160a01b03191633908117909155604080516311b25aab60e21b815290516346c96aac916004808201926020929091908290030181865afa15801562002104573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200212a9190620046cd565b600c80546001600160a01b039283166001600160a81b031990911617600160a01b84151502179055600e80546001600160a01b031990811685841617909155600d8054909116918516919091179055604051839083906200218b9062004069565b6001600160a01b03928316815291166020820152604001604051809103906000f080158015620021bf573d6000803e3d6000fd5b50600f60006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000836001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562002227573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200225191908101906200480c565b90506000836001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801562002294573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620022be91908101906200480c565b9050821562002337578181604051602001620022dc929190620048ba565b604051602081830303815290604052600a9081620022fb919062004915565b50818160405160200162002311929190620049e2565b604051602081830303815290604052600b908162002330919062004915565b50620023a2565b81816040516020016200234c92919062004a35565b604051602081830303815290604052600a90816200236b919062004915565b5081816040516020016200238192919062004a92565b604051602081830303815290604052600b9081620023a0919062004915565b505b846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015620023e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062002407919062004ab6565b6200241490600a62004bd3565b601281905550836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002459573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200247f919062004ab6565b6200248c90600a62004bd3565b60135550506040805160608101825242815260006020820181815292820181815260118054600181018255925291517f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6860039092029182015591517f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c69830155517f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6a90910155505050565b601454601554601054600c5460405163cc56b2c560e01b8152306004820152600160a01b90910460ff16151560248201526000939291612710916001600160a01b039091169063cc56b2c590604401602060405180830381865afa158015620025a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620025c99190620045a0565b620025d59087620045e6565b620025e1919062004616565b620025ed9086620045d0565b9450620025fd8585848462002d14565b95945050505050565b620026106200270a565b600d546040516370a0823160e01b8152306004820152620026fd916001600160a01b0316906370a0823190602401602060405180830381865afa1580156200265c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026829190620045a0565b600e546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015620026cb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620026f19190620045a0565b60145460155462002a46565b620027086001600955565b565b6002600954036200275e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640162001ac7565b6002600955565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905262001bb59084906200382a565b80600003620027c55750565b600f54600d54620027e4916001600160a01b0391821691168362002765565b6000620027f060025490565b6200280483670de0b6b3a7640000620045e6565b62002810919062004616565b90508015620028335780601960008282546200282d919062004685565b90915550505b604080518381526000602082015233917f112c256902bf554b6ed882d2936687aaeb4225e8cd5b51303c90ca6cf43a860291015b60405180910390a25050565b806000036200287f5750565b600f54600e546200289e916001600160a01b0391821691168362002765565b6000620028aa60025490565b620028be83670de0b6b3a7640000620045e6565b620028ca919062004616565b90508015620028ed5780601a6000828254620028e7919062004685565b90915550505b60408051600081526020810184905233917f112c256902bf554b6ed882d2936687aaeb4225e8cd5b51303c90ca6cf43a8602910162002867565b600c54600090600160a01b900460ff161562002a32576012546000906200295785670de0b6b3a7640000620045e6565b62002963919062004616565b9050600060135484670de0b6b3a7640000620029809190620045e6565b6200298c919062004616565b90506000670de0b6b3a7640000620029a58385620045e6565b620029b1919062004616565b90506000670de0b6b3a7640000620029ca8480620045e6565b620029d6919062004616565b670de0b6b3a7640000620029eb8680620045e6565b620029f7919062004616565b62002a03919062004685565b9050670de0b6b3a764000062002a1a8284620045e6565b62002a26919062004616565b94505050505062000f6b565b62002a3e8284620045e6565b905062000f6b565b601654429060009062002a5a9083620045d0565b905060008111801562002a6c57508315155b801562002a7857508215155b1562002ac85762002a8a8185620045e6565b6017600082825462002a9d919062004685565b9091555062002aaf90508184620045e6565b6018600082825462002ac2919062004685565b90915550505b600062002ad462001945565b805190915062002ae59084620045d0565b915061070882111562002b9b5760408051606081018252848152601754602082019081526018549282019283526011805460018101825560009190915291517f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c68600390930292830155517f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6982015590517f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c6a909101555b60148790556015869055601683905560408051888152602081018890527fcf2aa50876cdfbb541206f89af0ee78d44a2abf8d328e37fa4917f982149848a910160405180910390a150505050505050565b6001600160a01b03831662002c505760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840162001ac7565b6001600160a01b03821662002cb35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162001ac7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600c54600090600160a01b900460ff161562002e9057600062002d38848462002927565b60125490915062002d5285670de0b6b3a7640000620045e6565b62002d5e919062004616565b60135490945062002d7884670de0b6b3a7640000620045e6565b62002d84919062004616565b600d5490935060009081906001600160a01b0388811691161462002daa57848662002dad565b85855b600d5491935091506001600160a01b0388811691161462002df15760135462002ddf89670de0b6b3a7640000620045e6565b62002deb919062004616565b62002e14565b60125462002e0889670de0b6b3a7640000620045e6565b62002e14919062004616565b9750600062002e3062002e28848b62004685565b858462003903565b62002e3c9083620045d0565b600d54909150670de0b6b3a7640000906001600160a01b038a811691161462002e685760125462002e6c565b6013545b62002e789083620045e6565b62002e84919062004616565b94505050505062001196565b600d5460009081906001600160a01b0387811691161462002eb357838562002eb6565b84845b909250905062002ec7878362004685565b62002ed38289620045e6565b62002edf919062004616565b9250505062001196565b600062002ef784846200205d565b9050600019811462002f64578181101562002f555760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640162001ac7565b62002f64848484840362002bec565b50505050565b6001600160a01b03831662002fd05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840162001ac7565b6001600160a01b038216620030345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840162001ac7565b6200304183838362003aa9565b6001600160a01b03831660009081526020819052604090205481811015620030bb5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840162001ac7565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362002f64565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156200317c57507f000000000000000000000000000000000000000000000000000000000000000046145b15620031a757507f000000000000000000000000000000000000000000000000000000000000000090565b62001283604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000816000036200326357506000919050565b60006001620032728462003abf565b901c6001901b905060018184816200328e576200328e62004600565b048201901c90506001818481620032a957620032a962004600565b048201901c90506001818481620032c457620032c462004600565b048201901c90506001818481620032df57620032df62004600565b048201901c90506001818481620032fa57620032fa62004600565b048201901c9050600181848162003315576200331562004600565b048201901c9050600181848162003330576200333062004600565b048201901c90506200123c818285816200334e576200334e62004600565b0462003426565b6001600160a01b038216620033ad5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640162001ac7565b620033bb6000838362003aa9565b8060026000828254620033cf919062004685565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60008183106200343757816200123c565b5090919050565b606060ff831615620034555762002a3e8362003b5b565b818054620034639062004639565b80601f0160208091040260200160405190810160405280929190818152602001828054620034919062004639565b8015620034e25780601f10620034b657610100808354040283529160200191620034e2565b820191906000526020600020905b815481529060010190602001808311620034c457829003601f168201915b5050505050905062000f6b565b6001600160a01b038216620035515760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840162001ac7565b6200355f8260008362003aa9565b6001600160a01b03821660009081526020819052604090205481811015620035d55760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840162001ac7565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6001600160a01b038116600090815260208190526040902054801562003774576001600160a01b0382166000908152601b602090815260408083208054601c8085529285208054601954601a54948190559490955282905593620036988584620045d0565b90506000620036a88584620045d0565b905081156200370a576000670de0b6b3a7640000620036c8848a620045e6565b620036d4919062004616565b6001600160a01b038a166000908152601d60205260408120805492935083929091906200370390849062004685565b9091555050505b80156200376a576000670de0b6b3a764000062003728838a620045e6565b62003734919062004616565b6001600160a01b038a166000908152601e60205260408120805492935083929091906200376390849062004685565b9091555050505b5050505050505050565b6019546001600160a01b0383166000908152601b6020908152604080832093909355601a54601c909152919020555050565b6001600160a01b03811660009081526007602052604090208054600181018255905b50919050565b600062000f6b620037de62003122565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000620038118787878762003b90565b91509150620038208162003c59565b5095945050505050565b600062003881826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031662003db69092919063ffffffff16565b80519091501562001bb55780806020019051810190620038a2919062004534565b62001bb55760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162001ac7565b6000805b60ff81101562003a7a5760006200391f868562003dc7565b905084811015620039d457600062003938878662003e60565b620039448388620045d0565b6200395890670de0b6b3a7640000620045e6565b62003964919062004616565b905080600003620039bf5785820362003983578493505050506200123c565b856200399c886200399688600162004685565b62002927565b1115620039bb57620039b085600162004685565b93505050506200123c565b5060015b620039cb818662004685565b94505062003a64565b6000620039e2878662003e60565b620039ee8784620045d0565b62003a0290670de0b6b3a7640000620045e6565b62003a0e919062004616565b90508060000362003a54578582148062003a3e57508562003a3c8862003a36600189620045d0565b62003dc7565b105b1562003a50578493505050506200123c565b5060015b62003a608186620045d0565b9450505b508062003a7181620046b1565b91505062003907565b5060405162461bcd60e51b8152602060048201526002602482015261217960f01b604482015260640162001ac7565b62003ab48362003633565b62001bb58262003633565b600080608083901c1562003ad557608092831c92015b604083901c1562003ae857604092831c92015b602083901c1562003afb57602092831c92015b601083901c1562003b0e57601092831c92015b600883901c1562003b2157600892831c92015b600483901c1562003b3457600492831c92015b600283901c1562003b4757600292831c92015b600183901c1562000f6b5760010192915050565b60408051602080825281830190925260609160ff84169160009180820181803683375050509182525060208101929092525090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111562003bc9575060009050600362003c50565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801562003c1e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811662003c495760006001925092505062003c50565b9150600090505b94509492505050565b600081600481111562003c705762003c7062004be4565b0362003c795750565b600181600481111562003c905762003c9062004be4565b0362003cdf5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640162001ac7565b600281600481111562003cf65762003cf662004be4565b0362003d455760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640162001ac7565b600381600481111562003d5c5762003d5c62004be4565b0362001d045760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840162001ac7565b606062001196848460008562003ef0565b600080670de0b6b3a764000062003ddf8486620045e6565b62003deb919062004616565b90506000670de0b6b3a764000062003e048580620045e6565b62003e10919062004616565b670de0b6b3a764000062003e258780620045e6565b62003e31919062004616565b62003e3d919062004685565b9050670de0b6b3a764000062003e548284620045e6565b620025fd919062004616565b6000670de0b6b3a7640000838162003e798280620045e6565b62003e85919062004616565b62003e919190620045e6565b62003e9d919062004616565b670de0b6b3a76400008062003eb38580620045e6565b62003ebf919062004616565b62003ecc866003620045e6565b62003ed89190620045e6565b62003ee4919062004616565b6200123c919062004685565b60608247101562003f535760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162001ac7565b600080866001600160a01b0316858760405162003f71919062004bfa565b60006040518083038185875af1925050503d806000811462003fb0576040519150601f19603f3d011682016040523d82523d6000602084013e62003fb5565b606091505b509150915062001a4f8783838760608315620040365782516000036200402e576001600160a01b0385163b6200402e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162001ac7565b508162001196565b6200119683838151156200404d5781518083602001fd5b8060405162461bcd60e51b815260040162001ac791906200419d565b6105818062004c1983390190565b6001600160a01b038116811462001d0457600080fd5b60008083601f840112620040a057600080fd5b50813567ffffffffffffffff811115620040b957600080fd5b602083019150836020828501011115620040d257600080fd5b9250929050565b600080600080600060808688031215620040f257600080fd5b853594506020860135935060408601356200410d8162004077565b9250606086013567ffffffffffffffff8111156200412a57600080fd5b62004138888289016200408d565b969995985093965092949392505050565b60005b83811015620041665781810151838201526020016200414c565b50506000910152565b600081518084526200418981602086016020860162004149565b601f01601f19169290920160200192915050565b6020815260006200123c60208301846200416f565b60008060408385031215620041c657600080fd5b8235620041d38162004077565b946020939093013593505050565b60008060008060808587031215620041f857600080fd5b8435620042058162004077565b966020860135965060408601359560600135945092505050565b600081518084526020808501945080840160005b83811015620042515781518752958201959082019060010162004233565b509495945050505050565b6020815260006200123c60208301846200421f565b6000602082840312156200428457600080fd5b81356200123c8162004077565b600080600060608486031215620042a757600080fd5b8335620042b48162004077565b92506020840135620042c68162004077565b929592945050506040919091013590565b600060208284031215620042ea57600080fd5b5035919050565b6000806000606084860312156200430757600080fd5b8335620043148162004077565b95602085013595506040909401359392505050565b60ff60f81b8816815260e0602082015260006200434a60e08301896200416f565b82810360408401526200435e81896200416f565b606084018890526001600160a01b038716608085015260a0840186905283810360c085015290506200439181856200421f565b9a9950505050505050505050565b60008060208385031215620043b357600080fd5b823567ffffffffffffffff811115620043cb57600080fd5b620043d9858286016200408d565b90969095509350505050565b60ff8116811462001d0457600080fd5b600080600080600080600060e0888a0312156200441157600080fd5b87356200441e8162004077565b96506020880135620044308162004077565b9550604088013594506060880135935060808801356200445081620043e5565b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156200448157600080fd5b82356200448e8162004077565b91506020830135620044a08162004077565b809150509250929050565b801515811462001d0457600080fd5b600080600060608486031215620044d057600080fd5b8335620044dd8162004077565b92506020840135620044ef8162004077565b915060408401356200450181620044ab565b809150509250925092565b600080604083850312156200452057600080fd5b823591506020830135620044a08162004077565b6000602082840312156200454757600080fd5b81516200123c81620044ab565b60018060a01b038616815284602082015283604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b600060208284031215620045b357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111562000f6b5762000f6b620045ba565b808202811582820484141762000f6b5762000f6b620045ba565b634e487b7160e01b600052601260045260246000fd5b6000826200463457634e487b7160e01b600052601260045260246000fd5b500490565b600181811c908216806200464e57607f821691505b602082108103620037c857634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b8082018082111562000f6b5762000f6b620045ba565b634e487b7160e01b600052603260045260246000fd5b600060018201620046c657620046c6620045ba565b5060010190565b600060208284031215620046e057600080fd5b81516200123c8162004077565b601f82111562001bb557600081815260208120601f850160051c81016020861015620047165750805b601f850160051c820191505b81811015620047375782815560010162004722565b505050505050565b67ffffffffffffffff8311156200475a576200475a6200466f565b62004772836200476b835462004639565b83620046ed565b6000601f841160018114620047a95760008515620047905750838201355b600019600387901b1c1916600186901b17835562000eb4565b600083815260209020601f19861690835b82811015620047dc5786850135825560209485019460019092019101620047ba565b5086821015620047fa5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000602082840312156200481f57600080fd5b815167ffffffffffffffff808211156200483857600080fd5b818401915084601f8301126200484d57600080fd5b8151818111156200486257620048626200466f565b604051601f8201601f19908116603f011681019083821181831017156200488d576200488d6200466f565b81604052828152876020848701011115620048a757600080fd5b62001a4f83602083016020880162004149565b6e029ba30b13632ab191020a6a690169608d1b815260008351620048e681600f85016020880162004149565b602f60f81b600f9184019182015283516200490981601084016020880162004149565b01601001949350505050565b815167ffffffffffffffff8111156200493257620049326200466f565b6200494a8162004943845462004639565b84620046ed565b602080601f831160018114620049825760008415620049695750858301515b600019600386901b1c1916600185901b17855562004737565b600085815260208120601f198616915b82811015620049b35788860151825594840194600190910190840162004992565b5085821015620049d25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6673414d4d56322d60c81b81526000835162004a0681600785016020880162004149565b602f60f81b600791840191820152835162004a2981600884016020880162004149565b01600801949350505050565b7002b37b630ba34b632ab191020a6a690169607d1b81526000835162004a6381601185016020880162004149565b602f60f81b601191840191820152835162004a8681601284016020880162004149565b01601201949350505050565b6676414d4d56322d60c81b81526000835162004a0681600785016020880162004149565b60006020828403121562004ac957600080fd5b81516200123c81620043e5565b600181815b8085111562004b1757816000190482111562004afb5762004afb620045ba565b8085161562004b0957918102915b93841c939080029062004adb565b509250929050565b60008262004b305750600162000f6b565b8162004b3f5750600062000f6b565b816001811462004b58576002811462004b635762004b83565b600191505062000f6b565b60ff84111562004b775762004b77620045ba565b50506001821b62000f6b565b5060208310610133831016604e8410600b841016171562004ba8575081810a62000f6b565b62004bb4838362004ad6565b806000190482111562004bcb5762004bcb620045ba565b029392505050565b60006200123c60ff84168362004b1f565b634e487b7160e01b600052602160045260246000fd5b6000825162004c0e81846020870162004149565b919091019291505056fe60e060405234801561001057600080fd5b5060405161058138038061058183398101604081905261002f91610066565b336080526001600160a01b0391821660a0521660c052610099565b80516001600160a01b038116811461006157600080fd5b919050565b6000806040838503121561007957600080fd5b6100828361004a565b91506100906020840161004a565b90509250929050565b60805160a05160c0516104bc6100c5600039600060db0152600060a101526000605001526104bc6000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063533cf5ce14610030575b600080fd5b61004361003e3660046103a9565b610045565b005b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461008e57604051636f61f64160e01b815260040160405180910390fd5b81156100c8576100c86001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168484610107565b8015610102576101026001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483610107565b505050565b604080516001600160a01b03848116602483015260448083018590528351808403909101815260649092018352602080830180516001600160e01b031663a9059cbb60e01b17905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65649084015261010292869291600091610197918516908490610219565b80519091501561010257808060200190518101906101b591906103ea565b6101025760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b60606102288484600085610230565b949350505050565b6060824710156102915760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610210565b600080866001600160a01b031685876040516102ad9190610437565b60006040518083038185875af1925050503d80600081146102ea576040519150601f19603f3d011682016040523d82523d6000602084013e6102ef565b606091505b50915091506103008783838761030b565b979650505050505050565b6060831561037a578251600003610373576001600160a01b0385163b6103735760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610210565b5081610228565b610228838381511561038f5781518083602001fd5b8060405162461bcd60e51b81526004016102109190610453565b6000806000606084860312156103be57600080fd5b83356001600160a01b03811681146103d557600080fd5b95602085013595506040909401359392505050565b6000602082840312156103fc57600080fd5b8151801515811461040c57600080fd5b9392505050565b60005b8381101561042e578181015183820152602001610416565b50506000910152565b60008251610449818460208701610413565b9190910192915050565b6020815260008251806020840152610472816040850160208701610413565b601f01601f1916919091016040019291505056fea2646970667358221220bbf31b8572a00cdf66220f30ec5249ada1d4976e9903a1d170e02ce799af741b64736f6c63430008130033a264697066735822122076e4352151e43f398acac398c2ecc194fc99a560bee567db1d6078f7934cabf764736f6c63430008130033