[ { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "bool", "name": "mintable", "type": "bool" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidShortString", "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": "delegator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "fromDelegate", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toDelegate", "type": "address" } ], "name": "DelegateChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "previousBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "DelegateVotesChanged", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "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": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "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": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint32", "name": "pos", "type": "uint32" } ], "name": "checkpoints", "outputs": [ { "components": [ { "internalType": "uint32", "name": "fromBlock", "type": "uint32" }, { "internalType": "uint224", "name": "votes", "type": "uint224" } ], "internalType": "struct ERC20Votes.Checkpoint", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "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": [ { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256", "name": "expiry", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "delegateBySig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "delegates", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "numCheckpoints", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "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" } ]
6101608060405234620000ef576200356d803803809162000020826200010a565b833960a08183019112620000ef578151906001600160a01b0382168203620000ef57610180516101a0516001600160401b039491929190858111620000ef57826200006d91830162000188565b916101c051958611620000ef576200009d956200008b920162000188565b9162000096620001ee565b93620001ff565b60405161241d908162001130823960805181611df2015260a05181611ead015260c05181611dbc015260e05181611e4101526101005181611e67015261012051816108150152610140518161083e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b601f01601f1916610160908101906001600160401b038211908210176200013057604052565b620000f4565b604081019081106001600160401b038211176200013057604052565b60405190620001618262000136565b565b60005b838110620001775750506000910152565b818101518382015260200162000166565b81601f82011215620000ef5780516001600160401b0392838211620001305760405193601f8301601f19908116603f0116850190811185821017620001305760405281845260208284010111620000ef57620001eb916020808501910162000163565b90565b6101e051908115158203620000ef57565b919493909294604051620002138162000136565b6001808252603160f81b6020808401918252845190999194926001600160401b038211620001305762000253826200024d600354620003b2565b620003ef565b8a601f83116001146200031857928280620001619c9d946200029894620003069b9a9998976000936200030c575b501b916000199060031b1c19161760035562000553565b620002a38262000ce0565b61012052620002b28362000df0565b61014052815191012060e052519020610100524660a052620002d362000f6f565b6080523060c052620002ed601260ff19600c541617600c55565b61ff00600c5491151560081b169061ff00191617600c55565b620006ac565b88015192503862000281565b6003600052909190601f198216907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9160005b8181106200039c57509262000306999897969592620001619d9e95928262000298961062000382575b5050811b0160035562000553565b87015160001960f88460031b161c19169055388062000374565b87830151845592850192918e01918e016200034b565b90600182811c92168015620003e4575b6020831014620003ce57565b634e487b7160e01b600052602260045260246000fd5b91607f1691620003c2565b601f8111620003fc575050565b6000906003825260208220906020601f850160051c830194106200043d575b601f0160051c01915b8281106200043157505050565b81815560010162000424565b90925082906200041b565b601f811162000455575050565b6000906004825260208220906020601f850160051c8301941062000496575b601f0160051c01915b8281106200048a57505050565b8181556001016200047d565b909250829062000474565b601f8111620004ae575050565b6000906005825260208220906020601f850160051c83019410620004ef575b601f0160051c01915b828110620004e357505050565b818155600101620004d6565b9092508290620004cd565b601f811162000507575050565b6000906006825260208220906020601f850160051c8301941062000548575b601f0160051c01915b8281106200053c57505050565b8181556001016200052f565b909250829062000526565b80519091906001600160401b03811162000130576200057f8162000579600454620003b2565b62000448565b602080601f8311600114620005be5750819293600092620005b2575b50508160011b916000199060031b1c191617600455565b0151905038806200059b565b6004600052601f198316949091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b8782106200062d57505083600195961062000613575b505050811b01600455565b015160001960f88460031b161c1916905538808062000608565b80600185968294968601518155019501930190620005f2565b156200064e57565b60405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608490fd5b906001600160a01b0382168015620007565760025482810180911162000750576200074c936200072e92620006e18593600255565b6001600160a01b038216600090815260208181526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3620007b1565b60025462000746906001600160e01b03101562000646565b620009c9565b5050565b6200079b565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b60096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b546001600160a01b039182166000908152604081205483169392909116908184141580620008b5575b6200080c575b50505050565b82908262000874575b5050508162000827575b808062000806565b6001600160a01b0382166000908152600a602052604090206000805160206200354d833981519152916200085b9162000c73565b60408051928352602083019190915290a238806200081f565b6000805160206200354d83398151915291604082856200089b9452600a6020522062000b4f565b60408051928352602083019190915290a238818162000815565b5082151562000800565b604080519192919081016001600160401b038111828210176200013057604052602081935463ffffffff81168352811c910152565b600b54906801000000000000000082101562000130576001820180600b558210156200096257600b600052805160209182015190911b63ffffffff191663ffffffff91909116177f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910155565b634e487b7160e01b600052603260045260246000fd5b908154680100000000000000008110156200013057600181018084558110156200096257600092835260209283902082519284015190931b63ffffffff191663ffffffff9290921691909117910155565b600b549091811591821562000b1157620009e262000152565b60008152600060208201525b602081015162000a1b9062000a13906001600160e01b03165b6001600160e01b031690565b958662001113565b9315908162000aea575b501562000a8257620001619062000a6b62000a408562000fdb565b600b600052917f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db80190565b9063ffffffff82549181199060201b169116179055565b506200016162000aab62000aa562000a9a4362001045565b65ffffffffffff1690565b620010ad565b62000ae462000aba8562000fdb565b62000ad462000ac862000152565b63ffffffff9094168452565b6001600160e01b03166020830152565b620008f4565b5163ffffffff16905063ffffffff62000b0762000a9a4362001045565b9116143862000a25565b600b60005262000b497f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db88201620008bf565b620008bf565b620009ee565b90918154918215928360001462000c535762000b6a62000152565b60008152600060208201525b602081015162000b9c9062000b94906001600160e01b031662000a07565b968762001121565b9415908162000c2c575b501562000bd35762000a6b620001619262000bc18662000fdb565b92600019019060005260206000200190565b50620001619062000bec62000aa562000a9a4362001045565b9062000c2662000bfc8662000fdb565b62000c1662000c0a62000152565b63ffffffff9095168552565b6001600160e01b03166020840152565b62000978565b5163ffffffff16905063ffffffff62000c4962000a9a4362001045565b9116143862000ba6565b62000c6d62000b4360001983018460005260206000200190565b62000b76565b90918154918215928360001462000cc05762000c8e62000152565b60008152600060208201525b602081015162000b9c9062000cb8906001600160e01b031662000a07565b968762001113565b62000cda62000b4360001983018460005260206000200190565b62000c9a565b908151602080821060001462000cfe57505090620001eb9062000f00565b6001600160401b038211620001305762000d258262000d1f600554620003b2565b620004a1565b80601f831160011462000d65575081929360009262000d59575b50508160011b916000199060031b1c19161760055560ff90565b01519050388062000d3f565b6005600052601f198316949091907f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0926000905b87821062000dd757505083600195961062000dbd575b505050811b0160055560ff90565b015160001960f88460031b161c1916905538808062000daf565b8060018596829496860151815501950193019062000d99565b908151602080821060001462000e0e57505090620001eb9062000f00565b6001600160401b038211620001305762000e358262000e2f600654620003b2565b620004fa565b80601f831160011462000e75575081929360009262000e69575b50508160011b916000199060031b1c19161760065560ff90565b01519050388062000e4f565b6006600052601f198316949091907ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f926000905b87821062000ee757505083600195961062000ecd575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808062000ebf565b8060018596829496860151815501950193019062000ea9565b601f81511162000f2e57602081519101516020821062000f1e571790565b6000198260200360031b1b161790565b6044604051809263305a27a960e01b82526020600483015262000f61815180928160248601526020868601910162000163565b601f01601f19168101030190fd5b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811060018060401b03821117620001305760405251902090565b6001600160e01b039081811162000ff0571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608490fd5b65ffffffffffff9081811162001059571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608490fd5b63ffffffff90818111620010bf571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608490fd5b908101809111620007505790565b90810390811162000750579056fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146101b7578063095ea7b3146101b257806318160ddd146101ad57806323b872dd146101a8578063313ce567146101a35780633644e5151461019e57806339509351146101995780633a46b1a8146101945780634bf5d7e91461018f578063587cde1e1461018a5780635c19a95c146101855780636fcfff451461018057806370a082311461017b5780637ecebe001461017657806384b0196e146101715780638e539e8c1461016c57806391ddadf41461016757806395d89b41146101625780639ab24eb01461015d578063a0712d6814610158578063a457c2d714610153578063a9059cbb1461014e578063c3cda52014610149578063d505accf14610144578063dd62ed3e1461013f5763f1127ed81461013a57600080fd5b611059565b611001565b610ebb565b610d90565b610d4a565b610c9c565b610b80565b610b1e565b610a77565b610a4b565b6108f2565b6107fa565b6107c0565b610786565b61073e565b61071a565b6106df565b61062d565b6104dc565b610484565b610461565b610440565b610375565b610357565b610326565b610210565b919082519283825260005b8481106101e8575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101c7565b90602061020d9281815201906101bc565b90565b346102f5576000806003193601126102f2576040519080600354610233816110e0565b808552916001918083169081156102c8575060011461026d575b6102698561025d81870382611189565b604051918291826101fc565b0390f35b9250600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106102b057505050810160200161025d8261026961024d565b80546020858701810191909152909301928101610295565b8695506102699693506020925061025d94915060ff191682840152151560051b820101929361024d565b80fd5b600080fd5b600435906001600160a01b03821682036102f557565b602435906001600160a01b03821682036102f557565b346102f55760403660031901126102f55761034c6103426102fa565b602435903361139d565b602060405160018152f35b346102f55760003660031901126102f5576020600254604051908152f35b346102f55760603660031901126102f55761038e6102fa565b610396610310565b6001600160a01b0382166000908152600160209081526040808320338452909152902060443591905492600184016103df575b6103d3935061128f565b60405160018152602090f35b8284106103fb576103f6836103d39503338361139d565b6103c9565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b346102f55760003660031901126102f557602060ff600c5416604051908152f35b346102f55760003660031901126102f557602061047c611db9565b604051908152f35b346102f55760403660031901126102f55761049d6102fa565b3360009081526001602090815260408083206001600160a01b038516845290915290205460243581018091116104d75761034c913361139d565b6111ab565b346102f55760403660031901126102f5576104f56102fa565b6024359061051465ffffffffffff61050c4361229c565b168310611576565b6001600160a01b03166000908152600a60205260408120805492909183600581116105dc575b50905b83821061058b57505081610564575050602060005b6040516001600160e01b039091168152f35b61057f61058691602093600019019060005260206000200190565b5460201c90565b610552565b909261059781856120cc565b908263ffffffff6105bc6105b2858860005260206000200190565b5463ffffffff1690565b1611156105cc5750925b9061053d565b93506105d7906111c1565b6105c6565b806105ec6105f2929693966120e1565b906115c2565b908263ffffffff61060d6105b2858860005260206000200190565b16111561061d5750925b3861053a565b9350610628906111c1565b610617565b346102f55760003660031901126102f5574365ffffffffffff61064f4361229c565b160361069a5761026960405161066481611130565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c740000006020820152604051918291826101fc565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606490fd5b346102f55760203660031901126102f55760206001600160a01b03806107036102fa565b166000526009825260406000205416604051908152f35b346102f55760203660031901126102f55761073c6107366102fa565b33611698565b005b346102f55760203660031901126102f5576001600160a01b0361075f6102fa565b16600052600a6020526020610778604060002054612303565b63ffffffff60405191168152f35b346102f55760203660031901126102f5576001600160a01b036107a76102fa565b1660005260006020526020604060002054604051908152f35b346102f55760203660031901126102f5576001600160a01b036107e16102fa565b1660005260076020526020604060002054604051908152f35b346102f5576000806003193601126102f2576108a4906108397f0000000000000000000000000000000000000000000000000000000000000000611ef9565b6108627f0000000000000000000000000000000000000000000000000000000000000000611ff2565b916040519161087083611151565b818352604051948594600f60f81b865261089660209360e08589015260e08801906101bc565b9086820360408801526101bc565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b8281106108db57505050500390f35b8351855286955093810193928101926001016108cc565b346102f55760203660031901126102f55760043561092165ffffffffffff6109194361229c565b168210611576565b600b5490600082600581116109e4575b50905b82821061098157828061094e575060405160008152602090f35b600b600052602090610586907f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db80161057f565b909161098d81846120cc565b600b600052908263ffffffff6109c47f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db985016105b2565b1611156109d45750915b90610934565b92506109df906111c1565b6109ce565b806105ec6109f4929593956120e1565b600b600052908263ffffffff610a2b7f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db985016105b2565b161115610a3b5750915b38610931565b9250610a46906111c1565b610a35565b346102f55760003660031901126102f5576020610a674361229c565b65ffffffffffff60405191168152f35b346102f5576000806003193601126102f2576040519080600454610a9a816110e0565b808552916001918083169081156102c85750600114610ac3576102698561025d81870382611189565b9250600483527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610b0657505050810160200161025d8261026961024d565b80546020858701810191909152909301928101610aeb565b346102f55760203660031901126102f5576001600160a01b03610b3f6102fa565b16600052600a602052604060002080548015600014610b6657505060405160008152602090f35b602091610b77916000190190611526565b5054811c610552565b346102f55760203660031901126102f55760043560ff600c5460081c1615610c68573315610c235780610bc0610bbb61073c936002546111cf565b600255565b33600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3610c08813361161b565b600254610c1e906001600160e01b031015612368565b6119e9565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b6e6f74206d696e7461626c6560a01b6044820152606490fd5b346102f55760403660031901126102f557610cb56102fa565b60243590336000526001602052610ce28160406000209060018060a01b0316600052602052604060002090565b5491808310610cf7576103d39203903361139d565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b346102f55760403660031901126102f55761034c610d666102fa565b602435903361128f565b6064359060ff821682036102f557565b6084359060ff821682036102f557565b346102f55760c03660031901126102f557610da96102fa565b60443590602435610db8610d70565b92804211610e7657610e48610e719161073c9560405190610e3082610e226020820195898b8860609194939260808201957fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835260018060a01b0316602083015260408201520152565b03601f198101845283611189565b610e4360a4359360843593519020611ed3565b611bd3565b6001600160a01b03811660009081526007602052604090208054600181019091559092146115cf565b611698565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606490fd5b346102f55760e03660031901126102f557610ed46102fa565b610edc610310565b6044359060643592610eec610d80565b93804211610fbc57610fa4610fb791610e2261073c97610f91610f2a8760018060a01b03166000526007602052604060002090815491600183019055565b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9602082019081526001600160a01b03808c1693830193909352918b166060820152608081018c905260a081019290925260c082019590955292839060e0820190565b610e4360c4359360a43593519020611ed3565b6001600160a01b038381169116146114cd565b61139d565b60405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b346102f55760403660031901126102f557602061105061101f6102fa565b611027610310565b6001600160a01b0391821660009081526001855260408082209290931681526020919091522090565b54604051908152f35b346102f55760403660031901126102f5576110726102fa565b63ffffffff60243581811681036102f5576110bc6110c29160409460006020875161109c81611130565b82815201526001600160a01b03166000908152600a602052859020611526565b50611554565b8251815190921682526020908101516001600160e01b031690820152f35b90600182811c92168015611110575b60208310146110fa57565b634e487b7160e01b600052602260045260246000fd5b91607f16916110ef565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761114c57604052565b61111a565b6020810190811067ffffffffffffffff82111761114c57604052565b60c0810190811067ffffffffffffffff82111761114c57604052565b90601f8019910116810190811067ffffffffffffffff82111761114c57604052565b634e487b7160e01b600052601160045260246000fd5b90600182018092116104d757565b919082018092116104d757565b156111e357565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b1561123b57565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b6001600160a01b03929190838116801561134a57611348948316906112b58215156111dc565b6001600160a01b03831660009081526020819052604090208590546112dc82821015611234565b036112f98460018060a01b03166000526000602052604060002090565b556001600160a01b0384166000908152602081815260409182902080548801905590518681527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3611666565b565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b03808216929190831561147c57821693841561142c57806114167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925946113ff6114279560018060a01b03166000526001602052604060002090565b9060018060a01b0316600052602052604060002090565b556040519081529081906020820190565b0390a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b156114d457565b60405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606490fd5b6040519061134882611130565b805482101561153e5760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b9060405161156181611130565b602081935463ffffffff81168352811c910152565b1561157d57565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20667574757265206c6f6f6b7570000000000000006044820152606490fd5b919082039182116104d757565b156115d657565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606490fd5b60096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b546001600160a01b03918216600090815260409020546113489392908116911661170c565b6001600160a01b039081166000908152600960205260408082205493831682529020546113489392908216911661170c565b6113489160018060a01b038092166000928184526009602052806040852054168092856020527f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60408720549660096020526040812094871694856bffffffffffffffffffffffff60a01b82541617905580a45b6001600160a01b0380831693929116808414158061191f575b611730575b50505050565b8061179e575b5082611743575b8061172a565b6001600160a01b03166000908152600a602052604090207fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249161178591611b1a565b60408051928352602083019190915290a238808061173d565b80600052600a6020527fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72460406000208054801591826000146118fc576117e2611519565b6000815260006020820152915b602083015161180e906001600160e01b03165b6001600160e01b031690565b9261181989856123cd565b941590816118d9575b50156118775761184a6118619261183886612233565b92600019019060005260206000200190565b9063ffffffff82549181199060201b169116179055565b604080519182526020820192909252a238611736565b506118d49061189b61189661188b4361229c565b65ffffffffffff1690565b612303565b906118cf6118a886612233565b6118bf6118b3611519565b63ffffffff9095168552565b6001600160e01b03166020840152565b61198f565b611861565b5163ffffffff16905063ffffffff6118f361188b4361229c565b91161438611822565b61191961191460001984018360005260206000200190565b611554565b916117ef565b50821515611725565b600b5490600160401b82101561114c576001820180600b5582101561153e57600b600052805160209182015190911b63ffffffff191663ffffffff91909116177f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910155565b8054600160401b81101561114c576119ac91600182018155611526565b6119d357815160209283015190921b63ffffffff191663ffffffff92909216919091179055565b634e487b7160e01b600052600060045260246000fd5b600b5490918115918215611ae5576119ff611519565b60008152600060208201525b6020810151611a2d90611a26906001600160e01b0316611802565b95866123da565b93159081611ac2575b5015611a77576113489061184a611a4c85612233565b600b600052917f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db80190565b50611348611a8a61189661188b4361229c565b611abd611a9685612233565b611aad611aa1611519565b63ffffffff9094168452565b6001600160e01b03166020830152565b611928565b5163ffffffff16905063ffffffff611adc61188b4361229c565b91161438611a36565b600b600052611b157f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db88201611554565b611a0b565b909181549182159283600014611bb657611b32611519565b60008152600060208201525b6020810151611b6090611b59906001600160e01b0316611802565b96876123da565b94159081611b93575b5015611b7f5761184a6113489261183886612233565b506113489061189b61189661188b4361229c565b5163ffffffff16905063ffffffff611bad61188b4361229c565b91161438611b69565b611bce61191460001983018460005260206000200190565b611b3e565b9161020d9391611be293611d2a565b919091611c0a565b60051115611bf457565b634e487b7160e01b600052602160045260246000fd5b611c1381611bea565b80611c1b5750565b611c2481611bea565b60018103611c715760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b611c7a81611bea565b60028103611cc75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b80611cd3600392611bea565b14611cda57565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311611dad5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15611da05781516001600160a01b03811615611d9a579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611eaa575b15611e14577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611ea48161116d565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611deb565b604290611ede611db9565b906040519161190160f01b8352600283015260228201522090565b60ff8114611f375760ff811690601f8211611f255760405191611f1b83611130565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600554816000611f4a836110e0565b80835292600190818116908115611fd05750600114611f71575b5061020d92500382611189565b6005600090815291507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b848310611fb5575061020d935050810160200138611f64565b81935090816020925483858901015201910190918492611f9c565b90506020925061020d94915060ff191682840152151560051b82010138611f64565b60ff81146120145760ff811690601f8211611f255760405191611f1b83611130565b50604051600654816000612027836110e0565b80835292600190818116908115611fd0575060011461204d575061020d92500382611189565b6006600090815291507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b848310612091575061020d935050810160200138611f64565b81935090816020925483858901015201910190918492612078565b81156120b6570490565b634e487b7160e01b600052601260045260246000fd5b90808216911860011c81018091116104d75790565b801561221b57806121b46121ad6121a361219961218f61218561217b612171600161020d9a6000908b60801c8061220f575b508060401c80612202575b508060201c806121f5575b508060101c806121e8575b508060081c806121db575b508060041c806121ce575b508060021c806121c1575b50821c6121ba575b811c1b61216a818b6120ac565b0160011c90565b61216a818a6120ac565b61216a81896120ac565b61216a81886120ac565b61216a81876120ac565b61216a81866120ac565b61216a81856120ac565b80926120ac565b90612221565b810161215d565b6002915091019038612155565b600491509101903861214a565b600891509101903861213f565b6010915091019038612134565b6020915091019038612129565b604091509101903861211e565b91505060809038612113565b50600090565b908082101561222e575090565b905090565b6001600160e01b0390818111612247571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608490fd5b65ffffffffffff908181116122af571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608490fd5b63ffffffff90818111612314571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608490fd5b1561236f57565b60405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608490fd5b9081039081116104d75790565b9081018091116104d7579056fea2646970667358221220c5faeb2809662a1560a79d3882c983f83163a3470f4e446f9260a5dc23e85b7564736f6c63430008130033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7240000000000000000000000004e1f7ede4c1647abc50d412ac5a7be52ea4423d30000000000000000000000000000000000000000033b2e3c9fd0803ce800000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000b526f636b657420506f6f6c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000352504c0000000000000000000000000000000000000000000000000000000000