[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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": "RAINBOW", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "WETH", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "enableTrading", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getCurrentBelt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentBeltName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getETHUSDPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getETHUSDPriceFeed", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getGlobalBuyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getGlobalMaxBuyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getGlobalMaxSellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getGlobalSellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNextBelt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getNextBeltName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRAINBOWUSDMarketCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_wallet", "type": "address" } ], "name": "getWalletBelt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_wallet", "type": "address" } ], "name": "getWalletBeltName", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_wallet", "type": "address" } ], "name": "getWalletHasBelt", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_wallet", "type": "address" } ], "name": "getWalletMaxSellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_wallet", "type": "address" } ], "name": "getWalletSellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxBuyTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSellTax", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSwap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "priceFeedETHUSD", "outputs": [ { "internalType": "contract AggregatorV3Interface", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "removeLimits", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_contractETHBalance", "type": "uint256" } ], "name": "sendETHToFeeManual", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_contractTokenBalance", "type": "uint256" } ], "name": "swapTokensForEthManual", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "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" }, { "inputs": [], "name": "uniswapV2Factory", "outputs": [ { "internalType": "contract IUniswapV2Factory", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Pair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapV2Router", "outputs": [ { "internalType": "contract IUniswapV2Router02", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "weth", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60e0604052600360a0908152620a8a4b60eb1b60c0526007906100229082610be7565b5061003667016345785d8a00005f19610ca1565b610041905f19610cc0565b600c556009600e55600f8054336001600160a01b0319918216811790925560108054909116909117905566470de4df8200006012819055601355348015610086575f80fd5b50610090336109d8565b3060808190526040516364e329cb60e11b8152600481019190915273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26024820152735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f9063c9c65396906044016020604051808303815f875af1158015610100573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101249190610ce5565b601180546001600160a01b0319166001600160a01b039283161790555f805482168152600b6020526040808220805460ff19908116600190811790925560805180861685528385208054831684179055600f54861685528385208054831684179055601054909516845291909220805490911690911790556101bc90737a250d5630b4cf539739df2c5dacb4c659f2488d5f19610a27565b6101ec6101d05f546001600160a01b031690565b737a250d5630b4cf539739df2c5dacb4c659f2488d5f19610a27565b6040805180820190915260038152620a8a4b60eb1b6020808301919091525f8052600190527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb499061023d9082610be7565b505f7fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b81905560097f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff557f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec81905560408051808201909152600381526241444160e81b602082810191909152600192839052919091527fcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792f906102ff9082610be7565b50610bb87fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e05560087fa15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054c5560017fabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe05819055604080518082019091526004815263444f474560e01b60208281019190915260025f52919091527fd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f906103c29082610be7565b506113887f679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c5560077fc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d5560027f91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a7556040805180820190915260038082526205852560ec1b6020838101919091525f91909152600190527f7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b906104849082610be7565b506127107f88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c35560067fcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af5560037f2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa055604080518082019091526004808252635553444360e01b6020838101919091525f91909152600190527fedc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643906105479082610be7565b50614e207fee60d0579bcffd98e668647d59fec1ff86a7fb340ce572e844f234ae73a6918f5560057f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe9377246581905560047f1a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f5560408051808201909152600381526221272160e91b6020828101919091525f9290925260019091527fe2689cd4a84e23ad2f564004f1c9013e9589d260bde6380aba3ca7e09e4df40c9061060b9082610be7565b50619c407fb98b78633099fa36ed8b8680c4f8092689e1e04080eb9cbb077ca38a14d7e3845560047f405aad32e1adbac89bb7f176e338b8fc6e994ca210c9bb7bdca249b4659422505560057f04cde762ef08b6b6c5ded8e8c4c0b3f4e5c9ad7342c88fcc93681b4588b73f055560408051808201909152600381526214d3d360ea1b60208281019190915260065f52600190527f8f331abe73332f95a25873e8b430885974c0409691f89d643119a11623a7924a906106cb9082610be7565b50620138807f59dd4b18488d12f51eda69757a0ed42a2010c14b564330cc74a06895e60c077b5560037fc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f35560067fc59312466997bb42aaaf719ece141047820e6b34531e1670dc1852a453648f0f556040805180820190915260048152631554d11560e21b60208281019190915260075f52600190527fdc686ec4a0ff239c70e7c7c36e8f853eced3bc8618f48d2b816da2a74311237e9061078d9082610be7565b50620249f07facd8ef244210bb6898e73c48bf820ed8ecc857a3bab8d79c10e4fa92b1e9ca655560027ff2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd25560077fbeb3bad75134cb432e5707980e3245c52c5998a1125ee30f2f0dbf3925b1e5515560408051808201909152600381526208aa8960eb1b60208281019190915260085f52600190527f4db623e5c4870b62d3fc9b4e8f893a1a77627d75ab45d9ff7e56ba19564af99b9061084e9082610be7565b50620493e07f3a5ea591190eeb3f8fcdced843c78df04ec0dfd42f5510375207515664fa0a755560017f85aaa47b6dc46495bb8824fad4583769726fea36efd831a35556690b830a8fbe81905560087f2645749a946633740611cfc8178319f0958659d6922e4bf7e3a08b44789f53a45560408051808201909152600381526242544360e81b60208281019190915260095f52919091527f74a5fbcb419ab7dbacbb2c92a4e163730f0da5c72b911deecf4f05a6b327d0a4906109119082610be7565b50620f42407ff85cc6ffc513dc6cf7d199ef87b7a63cf9defe62251c1c247cd12f1eec7bff29555f7f8a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb45881905560097f4ad5a04d53b5856f318545bb721f67d3f6d0a5a999f25eec7e20eaeb4c47b93355600c543380835260086020908152604080852093909355915167016345785d8a000081529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610d12565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316610a8e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216610aef5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a85565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680610b7757607f821691505b602082108103610b9557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610be257805f5260205f20601f840160051c81016020851015610bc05750805b601f840160051c820191505b81811015610bdf575f8155600101610bcc565b50505b505050565b81516001600160401b03811115610c0057610c00610b4f565b610c1481610c0e8454610b63565b84610b9b565b6020601f821160018114610c46575f8315610c2f5750848201515b5f19600385901b1c1916600184901b178455610bdf565b5f84815260208120601f198516915b82811015610c755787850151825560209485019460019092019101610c55565b5084821015610c9257868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f82610cbb57634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115610cdf57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f60208284031215610cf5575f80fd5b81516001600160a01b0381168114610d0b575f80fd5b9392505050565b6080516120b6610d705f395f818161068b0152818161109f015281816110dd0152818161112a015281816112ac0152818161139d015281816113c8015281816117cd0152818161187d01528181611a3f0152611a8101526120b65ff3fe608060405260043610610257575f3560e01c80638da5cb5b1161013f578063bf4b1990116100b3578063d1d8d57711610078578063d1d8d5771461067a578063dd62ed3e146106ad578063e31d60d9146106f1578063f2fde38b14610705578063f8b45b0514610724578063fdec607014610739575f80fd5b8063bf4b19901461061e578063c4918b4e14610632578063c6c934fa14610647578063c8e956ab146105b8578063cc2d04aa1461065b575f80fd5b8063a411209a11610104578063a411209a146105b8578063a9059cbb146105cc578063ad5c4648146103f9578063b25a372f146105eb578063b4f732631461060a578063bf45efce14610420575f80fd5b80638da5cb5b1461050d5780638e1046f9146105295780638ff77e821461054857806390526cf21461055c57806395d89b411461057b575f80fd5b8063313ce567116101d65780635408a8d31161019b5780635408a8d31461045257806359d0f7131461048957806370a08231146104b0578063715018a6146104cf578063751039fc146104e55780638a8c523c146104f9575f80fd5b8063313ce567146103ca578063363d1c75146103e55780633fc8cef3146103f95780634987dfec1461042057806349bd5a5e14610433575f80fd5b80631694505e1161021c5780631694505e1461033757806318160ddd1461035e57806323b872dd146103785780632a6cf5ea146103975780632e7b5228146103b6575f80fd5b80630255874f1461026257806306fdde0314610294578063095ea7b3146102b55780630f612f52146102e457806315a202a1146102f8575f80fd5b3661025e57005b5f80fd5b34801561026d575f80fd5b5061028161027c366004611c74565b61075f565b6040519081526020015b60405180910390f35b34801561029f575f80fd5b506102a86107c1565b60405161028b9190611c94565b3480156102c0575f80fd5b506102d46102cf366004611cc9565b610851565b604051901515815260200161028b565b3480156102ef575f80fd5b50610281610866565b348015610303575f80fd5b5061031f735f4ec3df9cbd43714fe2740f5e3616155c5b841981565b6040516001600160a01b03909116815260200161028b565b348015610342575f80fd5b5061031f737a250d5630b4cf539739df2c5dacb4c659f2488d81565b348015610369575f80fd5b5067016345785d8a0000610281565b348015610383575f80fd5b506102d4610392366004611cf1565b6108ab565b3480156103a2575f80fd5b506102816103b1366004611c74565b610983565b3480156103c1575f80fd5b506102816109c4565b3480156103d5575f80fd5b506040516009815260200161028b565b3480156103f0575f80fd5b506102816109f2565b348015610404575f80fd5b5061031f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b34801561042b575f80fd5b506009610281565b34801561043e575f80fd5b5060115461031f906001600160a01b031681565b34801561045d575f80fd5b506102d461046c366004611c74565b6001600160a01b03165f9081526006602052604090205460ff1690565b348015610494575f80fd5b5061031f735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f81565b3480156104bb575f80fd5b506102816104ca366004611c74565b610ae1565b3480156104da575f80fd5b506104e3610b02565b005b3480156104f0575f80fd5b506104e3610b15565b348015610504575f80fd5b506104e3610b30565b348015610518575f80fd5b505f546001600160a01b031661031f565b348015610534575f80fd5b506102a8610543366004611c74565b610b4d565b348015610553575f80fd5b506102a8610bf6565b348015610567575f80fd5b506102d4610576366004611d2b565b610c1b565b348015610586575f80fd5b5060408051808201909152601581527443727970746f63757272656e637952616e6b696e6760581b60208201526102a8565b3480156105c3575f80fd5b50610281600981565b3480156105d7575f80fd5b506102d46105e6366004611cc9565b610c63565b3480156105f6575f80fd5b50610281610605366004611c74565b610c6f565b348015610615575f80fd5b506102a8610c9b565b348015610629575f80fd5b50610281610ca8565b34801561063d575f80fd5b5061028160125481565b348015610652575f80fd5b50610281610d34565b348015610666575f80fd5b506102d4610675366004611d2b565b610d3e565b348015610685575f80fd5b5061031f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106b8575f80fd5b506102816106c7366004611d42565b6001600160a01b039182165f908152600a6020908152604080832093909416825291909152205490565b3480156106fc575f80fd5b50610281610d86565b348015610710575f80fd5b506104e361071f366004611c74565b610daa565b34801561072f575f80fd5b5061028160135481565b348015610744575f80fd5b50735f4ec3df9cbd43714fe2740f5e3616155c5b841961031f565b5f80610769610d34565b6001600160a01b0384165f9081526006602052604090205490915060ff16156107bb576001600160a01b0383165f908152600560205260409020548082116107b157816107b3565b805b949350505050565b92915050565b6060600780546107d090611d73565b80601f01602080910402602001604051908101604052809291908181526020018280546107fc90611d73565b80156108475780601f1061081e57610100808354040283529160200191610847565b820191905f5260205f20905b81548152906001019060200180831161082a57829003601f168201915b5050505050905090565b5f61085d338484610e23565b50600192915050565b5f806108706109f2565b90505f60095b5f818152600260205260409020548310610892578091506108a4565b8061089c81611dbf565b915050610876565b5092915050565b5f6108b7848484610f47565b6001600160a01b0384165f908152600a6020908152604080832033845290915290205482111561093f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6001600160a01b0384165f908152600a6020908152604080832033808552925290912054610979918691610974908690611dd4565b610e23565b5060019392505050565b6001600160a01b0381165f9081526006602052604081205460ff166109a95760096107bb565b506001600160a01b03165f9081526005602052604090205490565b5f806109ce610866565b6109d9906009611dd4565b9050600981116109e957806109ec565b60095b91505090565b5f80670de0b6b3a7640000610a05610ca8565b6011546040516370a0823160e01b81526001600160a01b03909116600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2906370a0823190602401602060405180830381865afa158015610a5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a839190611de7565b610a8d9190611dfe565b610a979190611e29565b6011549091505f90610ab1906001600160a01b0316610ae1565b610ac39067016345785d8a0000611e29565b9050610acf8183611dfe565b610ada906002611dfe565b9250505090565b6001600160a01b0381165f908152600860205260408120546107bb906115dc565b610b0a61168f565b610b135f6116e8565b565b610b1d61168f565b67016345785d8a00006012819055601355565b610b3861168f565b6011805460ff60a01b1916600160a01b179055565b606060015f610b5b84610c6f565b81526020019081526020015f208054610b7390611d73565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9f90611d73565b8015610bea5780601f10610bc157610100808354040283529160200191610bea565b820191905f5260205f20905b815481529060010190602001808311610bcd57829003601f168201915b50505050509050919050565b606060015f610c03610866565b81526020019081526020015f2080546107d090611d73565b600f545f906001600160a01b0316336001600160a01b03161480610c5257506010546001600160a01b0316336001600160a01b0316145b610c5a575f80fd5b6107bb82611737565b5f61085d338484610f47565b6001600160a01b0381165f9081526006602052604081205460ff166109a957610c96610866565b6107bb565b606060015f610c03610d86565b5f80735f4ec3df9cbd43714fe2740f5e3616155c5b84196001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610cfa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1e9190611e55565b5050509150506305f5e100816109ec9190611ea3565b5f806109d9610866565b600f545f906001600160a01b0316336001600160a01b03161480610d7557506010546001600160a01b0316336001600160a01b0316145b610d7d575f80fd5b6107bb82611794565b5f80610d90610866565b9050806009146109e957610da5816001611ecf565b6109ec565b610db261168f565b6001600160a01b038116610e175760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610936565b610e20816116e8565b50565b6001600160a01b038316610e855760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610936565b6001600160a01b038216610ee65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610936565b6001600160a01b038381165f818152600a602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610fab5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610936565b6001600160a01b03821661100d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610936565b5f811161106c5760405162461bcd60e51b815260206004820152602760248201527f544f4b454e3a205472616e7366657220616d6f756e74206d75737420657863656044820152666564207a65726f60c81b6064820152608401610936565b5f546001600160a01b0384811691161480159061109657505f546001600160a01b03838116911614155b80156110d457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b801561111257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614155b156113fb57601154600160a01b900460ff166111cf577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316146111cf5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c6564006064820152608401610936565b6012548111156112215760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610936565b6011546001600160a01b038381169116146112a6576013548161124384610ae1565b61124d9190611ecf565b106112a65760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610936565b5f6112d07f0000000000000000000000000000000000000000000000000000000000000000610ae1565b601254909150633b9aca008210159082106112eb5760125491505b8080156113025750601154600160a81b900460ff16155b801561131c57506011546001600160a01b03868116911614155b801561134057506001600160a01b0385165f908152600b602052604090205460ff16155b801561136457506001600160a01b0384165f908152600b602052604090205460ff16155b156113f8576011805460ff60b01b1916600160b01b17905561138582611794565b506011805460ff60b01b191690556001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001631156113f8576113f67f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031631611737565b505b50505b6001600160a01b0383165f908152600b602052604090205460019060ff168061143b57506001600160a01b0383165f908152600b602052604090205460ff165b8061146d57506011546001600160a01b0385811691161480159061146d57506011546001600160a01b03848116911614155b1561147957505f6115ca565b6011546001600160a01b0385811691161480156114b357506001600160a01b038316737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15611521576114c06109c4565b600e556001600160a01b0383165f9081526006602052604090205460ff16611519576114ea610866565b6001600160a01b0384165f908152600560209081526040808320939093556006905220805460ff191660011790555b61152161190b565b6011546001600160a01b03848116911614801561155b57506001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d14155b156115ca576115698461075f565b600e556001600160a01b0384165f9081526006602052604090205460ff166115c257611593610866565b6001600160a01b0385165f908152600560209081526040808320939093556006905220805460ff191660011790555b6115ca61190b565b6115d684848484611920565b50505050565b5f600c548211156116425760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610936565b601154600160b01b900460ff161580156116655750601154600160a81b900460ff165b61167b57611671611947565b610c969083611e29565b6107bb67016345785d8a00006103f2611dfe565b5f546001600160a01b03163314610b135760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610936565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6010546040515f9182916001600160a01b039091169084908381818185875af1925050503d805f8114611785576040519150601f19603f3d011682016040523d82523d5f602084013e61178a565b606091505b5090949350505050565b6011805460ff60a81b1916600160a81b1790556040805160028082526060820183525f92839291906020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000815f815181106117fe576117fe611ef6565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061184657611846611ef6565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac947845f847f00000000000000000000000000000000000000000000000000000000000000006118a842610e10611ecf565b6040518663ffffffff1660e01b81526004016118c8959493929190611f0a565b5f604051808303815f87803b1580156118df575f80fd5b505af11580156118f1573d5f803e3d5ffd5b50506011805460ff60a81b19169055506001949350505050565b611913610bf6565b600790610e209082611fc5565b8061192d5761192d611963565b611938848484611974565b806115d6576115d66009600e55565b5f67016345785d8a0000600c5461195e9190611e29565b905090565b600e545f0361196e57565b5f600e55565b601154600160a81b900460ff1615806119965750601154600160b01b900460ff165b15611b1f575f805f805f806119aa87611b69565b6001600160a01b038f165f90815260086020526040902054959b509399509197509550935091506119dc908790611dd4565b6001600160a01b03808b165f9081526008602052604080822093909355908a1681522054611a0b908690611ecf565b6001600160a01b0389165f90815260086020526040902055611a2b611947565b611a359082611dfe565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f90815260086020526040902054611a779190611ecf565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f90815260086020526040902055600c54611abd908590611dd4565b600c55600d54611ace908390611ecf565b600d556040518381526001600160a01b03808a1691908b16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050505050505050565b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f3a91815260200190565b505050565b5f805f805f805f805f611b7f8a5f600e54611bb5565b9250925092505f805f611b9b8d8686611b96611947565b611c0c565b919f909e50909c50959a5093985091965092945050505050565b5f8080806064611bc58789611dfe565b611bcf9190611e29565b90505f6064611bde878a611dfe565b611be89190611e29565b905080611bf5838a611dd4565b611bff9190611dd4565b9891975095509350505050565b5f808080611c1a8589611dfe565b90505f611c278689611dfe565b905081611c348789611dfe565b611c3e8385611dd4565b611c489190611dd4565b909a90995090975095505050505050565b80356001600160a01b0381168114611c6f575f80fd5b919050565b5f60208284031215611c84575f80fd5b611c8d82611c59565b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215611cda575f80fd5b611ce383611c59565b946020939093013593505050565b5f805f60608486031215611d03575f80fd5b611d0c84611c59565b9250611d1a60208501611c59565b929592945050506040919091013590565b5f60208284031215611d3b575f80fd5b5035919050565b5f8060408385031215611d53575f80fd5b611d5c83611c59565b9150611d6a60208401611c59565b90509250929050565b600181811c90821680611d8757607f821691505b602082108103611da557634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b5f81611dcd57611dcd611dab565b505f190190565b818103818111156107bb576107bb611dab565b5f60208284031215611df7575f80fd5b5051919050565b80820281158282048414176107bb576107bb611dab565b634e487b7160e01b5f52601260045260245ffd5b5f82611e3757611e37611e15565b500490565b805169ffffffffffffffffffff81168114611c6f575f80fd5b5f805f805f60a08688031215611e69575f80fd5b611e7286611e3c565b60208701516040880151606089015192975090955093509150611e9760808701611e3c565b90509295509295909350565b5f82611eb157611eb1611e15565b600160ff1b82145f1984141615611eca57611eca611dab565b500590565b808201808211156107bb576107bb611dab565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611f5a5783516001600160a01b0316835260209384019390920191600101611f33565b50506001600160a01b039590951660608401525050608001529392505050565b601f821115611b6457805f5260205f20601f840160051c81016020851015611f9f5750805b601f840160051c820191505b81811015611fbe575f8155600101611fab565b5050505050565b815167ffffffffffffffff811115611fdf57611fdf611ee2565b611ff381611fed8454611d73565b84611f7a565b6020601f821160018114612025575f831561200e5750848201515b5f19600385901b1c1916600184901b178455611fbe565b5f84815260208120601f198516915b828110156120545787850151825560209485019460019092019101612034565b508482101561207157868401515f19600387901b60f8161c191681555b50505050600190811b0190555056fea264697066735822122097af1150f2ee50eaad9a49998f8e00dd6bb5a3331e47de98803618df3d0e5b4164736f6c634300081a0033