{"abi":[{"type":"constructor","inputs":[{"name":"_crs","type":"address","internalType":"contract ICRS"},{"name":"_baseNode","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"GRACE_PERIOD","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_URI_SELECTOR","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"addController","inputs":[{"name":"_controller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"available","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"baseNode","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"controllers","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"crs","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ICRS"}],"stateMutability":"view"},{"type":"function","name":"expiries","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"gasFee","inputs":[{"name":"_duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nameExpires","inputs":[{"name":"id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"names","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"reclaim","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"register","inputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"registerOnly","inputs":[{"name":"id","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"},{"name":"duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"removeController","inputs":[{"name":"_controller","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renew","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"},{"name":"_duration","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"saveName","inputs":[{"name":"_name","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBasenodeResolverSettings","inputs":[{"name":"_callData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"},{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"setResolver","inputs":[{"name":"_resolver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"_id","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ControllerAdded","inputs":[{"name":"controller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ControllerRemoved","inputs":[{"name":"controller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NameMigrated","inputs":[{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"expires","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NameRegistered","inputs":[{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"expires","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"NameRenewed","inputs":[{"name":"id","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"expires","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162002edc38038062002edc833981016040819052620000349162000133565b6040518060400160405280600f81526020016e4c4537454c2041766174617220763160881b8152506040518060400160405280600681526020016520ab20aa20a960d11b815250620000956200008f620000df60201b60201c565b620000e3565b6001620000a3838262000214565b506002620000b2828262000214565b5050600780546001600160a01b0319166001600160a01b03949094169390931790925560085550620002e0565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080604083850312156200014757600080fd5b82516001600160a01b03811681146200015f57600080fd5b6020939093015192949293505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200019a57607f821691505b602082108103620001bb57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200020f57600081815260208120601f850160051c81016020861015620001ea5750805b601f850160051c820191505b818110156200020b57828155600101620001f6565b5050505b505050565b81516001600160401b038111156200023057620002306200016f565b620002488162000241845462000185565b84620001c1565b602080601f831160018114620002805760008415620002675750858301515b600019600386901b1c1916600185901b1785556200020b565b600085815260208120601f198616915b82811015620002b15788860151825594840194600190910190840162000290565b5085821015620002d05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b612bec80620002f06000396000f3fe6080604052600436106102045760003560e01c80638da5cb5b11610118578063c475abff116100a0578063ddf7fcb01161006f578063ddf7fcb014610651578063e985e9c514610667578063f2fde38b146106b0578063f6a74ed7146106d0578063fca247ac146106f057600080fd5b8063c475abff146105c1578063c87b56dd146105d4578063d6e4fa86146105f4578063da8c229e1461062157600080fd5b8063a7fc7a07116100e7578063a7fc7a071461051d578063b88d4fde1461053d578063b9cce3281461055d578063bc4205231461058a578063c1a287e2146105aa57600080fd5b80638da5cb5b146104aa57806395d89b41146104c857806396e494e8146104dd578063a22cb465146104fd57600080fd5b806342842e0e1161019b57806370a082311161016a57806370a08231146103c9578063715018a6146103e957806372b7692b146103fe5780638a5913691461044b5780638a59c83e1461046b57600080fd5b806342842e0e146103495780634622ab03146103695780634e543b26146103895780636352211e146103a957600080fd5b80630e297b45116101d75780630e297b45146102ba57806323b872dd146102db57806328ed4f6c146102fb578063302c96501461031b57600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b506102296102243660046122d1565b610703565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b50610253610755565b6040516102359190612345565b34801561026c57600080fd5b5061028061027b366004612358565b6107e7565b6040516001600160a01b039091168152602001610235565b3480156102a457600080fd5b506102b86102b3366004612386565b61080e565b005b6102cd6102c83660046123b2565b610928565b604051908152602001610235565b3480156102e757600080fd5b506102b86102f63660046123ea565b61093f565b34801561030757600080fd5b506102b861031636600461241a565b610970565b34801561032757600080fd5b5061033b61033636600461244a565b610acf565b6040516102359291906124bc565b34801561035557600080fd5b506102b86103643660046123ea565b610bb8565b34801561037557600080fd5b50610253610384366004612358565b610bd3565b34801561039557600080fd5b506102b86103a43660046124d7565b610c6d565b3480156103b557600080fd5b506102806103c4366004612358565b610ce2565b3480156103d557600080fd5b506102cd6103e43660046124d7565b610d38565b3480156103f557600080fd5b506102b8610dbe565b34801561040a57600080fd5b506104327fc835e302b0f33819b000dd357b0bbc12c36ec56c9ddeb92addcb21798dcc4fde81565b6040516001600160e01b03199091168152602001610235565b34801561045757600080fd5b50600754610280906001600160a01b031681565b34801561047757600080fd5b5061048b610486366004612358565b610dd2565b604080516001600160a01b039093168352602083019190915201610235565b3480156104b657600080fd5b506000546001600160a01b0316610280565b3480156104d457600080fd5b50610253610f13565b3480156104e957600080fd5b506102296104f8366004612358565b610f22565b34801561050957600080fd5b506102b86105183660046124f4565b610f48565b34801561052957600080fd5b506102b86105383660046124d7565b610f57565b34801561054957600080fd5b506102b86105583660046125d4565b610fab565b34801561056957600080fd5b506102cd610578366004612358565b600a6020526000908152604090205481565b34801561059657600080fd5b506102b86105a5366004612654565b610fe3565b3480156105b657600080fd5b506102cd6276a70081565b6102cd6105cf36600461269d565b611038565b3480156105e057600080fd5b506102536105ef366004612358565b611270565b34801561060057600080fd5b506102cd61060f366004612358565b6000908152600a602052604090205490565b34801561062d57600080fd5b5061022961063c3660046124d7565b60096020526000908152604090205460ff1681565b34801561065d57600080fd5b506102cd60085481565b34801561067357600080fd5b506102296106823660046126bf565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b3480156106bc57600080fd5b506102b86106cb3660046124d7565b611544565b3480156106dc57600080fd5b506102b86106eb3660046124d7565b6115bd565b6102cd6106fe3660046123b2565b61160e565b60006001600160e01b031982166301ffc9a760e01b148061073457506001600160e01b031982166380ac58cd60e01b145b8061074f57506001600160e01b03198216630a3b53db60e21b145b92915050565b606060018054610764906126ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610790906126ed565b80156107dd5780601f106107b2576101008083540402835291602001916107dd565b820191906000526020600020905b8154815290600101906020018083116107c057829003601f168201915b5050505050905090565b60006107f28261161d565b506000908152600560205260409020546001600160a01b031690565b60006108198261167c565b9050806001600160a01b0316836001600160a01b03160361088b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806108a757506108a78133610682565b6109195760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610882565b61092383836116dc565b505050565b6000610937848484600061174a565b949350505050565b61094933826119de565b6109655760405162461bcd60e51b815260040161088290612727565b610923838383611a59565b6007546008546040516302571be360e01b8152600481019190915230916001600160a01b0316906302571be390602401602060405180830381865afa1580156109bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e19190612774565b6001600160a01b031614610a075760405162461bcd60e51b815260040161088290612791565b610a1133836119de565b610a4d5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610882565b6007546008546040516306ab592360e01b81526004810191909152602481018490526001600160a01b038381166044830152909116906306ab5923906064016020604051808303816000875af1158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092391906127b3565b60006060610adb611bca565b600754600854604051630178b8bf60e01b81526001600160a01b0390921691630178b8bf91610b109160040190815260200190565b602060405180830381865afa158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190612774565b6001600160a01b03168484604051610b6a9291906127cc565b6000604051808303816000865af19150503d8060008114610ba7576040519150601f19603f3d011682016040523d82523d6000602084013e610bac565b606091505b50915091509250929050565b61092383838360405180602001604052806000815250610fab565b600b6020526000908152604090208054610bec906126ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610c18906126ed565b8015610c655780601f10610c3a57610100808354040283529160200191610c65565b820191906000526020600020905b815481529060010190602001808311610c4857829003601f168201915b505050505081565b610c75611bca565b600754600854604051630c4b7b8560e11b815260048101919091526001600160a01b03838116602483015290911690631896f70a90604401600060405180830381600087803b158015610cc757600080fd5b505af1158015610cdb573d6000803e3d6000fd5b5050505050565b6000818152600a60205260408120544210610d2f5760405162461bcd60e51b815260206004820152600d60248201526c1b19585cd948195e1c1a5c9959609a1b6044820152606401610882565b61074f8261167c565b60006001600160a01b038216610da25760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610882565b506001600160a01b031660009081526004602052604090205490565b610dc6611bca565b610dd06000611c24565b565b600754604051630178b8bf60e01b81527fd0340a34011af087b374bbdc5136a48a841af1b55b0af1143ced23c89cf182c960048201526000918291829182916001600160a01b0390911690630178b8bf90602401602060405180830381865afa158015610e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e679190612774565b6040516317ee1a1960e01b81527fd0340a34011af087b374bbdc5136a48a841af1b55b0af1143ced23c89cf182c960048201523060248201526001600160a01b0391909116906317ee1a1990604401606060405180830381865afa158015610ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef791906127dc565b50909250905081610f088683612835565b935093505050915091565b606060028054610764906126ed565b6000818152600a60205260408120544290610f41906276a7009061284c565b1092915050565b610f53338383611c74565b5050565b610f5f611bca565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f0a8bb31534c0ed46f380cb867bd5c803a189ced9a764e30b3a4991a9901d74749190a250565b610fb533836119de565b610fd15760405162461bcd60e51b815260040161088290612727565b610fdd84848484611d42565b50505050565b3360009081526009602052604090205460ff166110125760405162461bcd60e51b81526004016108829061285f565b80516020808301919091206000818152600b90925260409091208190610fdd84826128d5565b6007546008546040516302571be360e01b8152600481019190915260009130916001600160a01b03909116906302571be390602401602060405180830381865afa15801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae9190612774565b6001600160a01b0316146110d45760405162461bcd60e51b815260040161088290612791565b3360009081526009602052604090205460ff166111035760405162461bcd60e51b81526004016108829061285f565b600082116111465760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210323ab930ba34b7b760811b6044820152606401610882565b61114f82611d75565b6000838152600a60205260409020544261116c6276a7008361284c565b10156111ab5760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd081c9959da5cdd195c995960921b6044820152606401610882565b6111b86276a7008461284c565b6276a7006111c6858461284c565b6111d0919061284c565b1161120f5760405162461bcd60e51b815260206004820152600f60248201526e667574757265206f766572666c6f7760881b6044820152606401610882565b611219838261284c565b6000858152600a6020526040908190208290555190915084907f9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd6906112619084815260200190565b60405180910390a29392505050565b600854600754604051630178b8bf60e01b815260048101839052606092916001600160a01b0316906000908290630178b8bf90602401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190612774565b6040516330dca1c360e21b81526004810185905230602482015263641af18160e11b60448201526001600160a01b03919091169063c372870c90606401602060405180830381865afa158015611341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113659190612774565b604080516020810186905290810187905290915060009060600160408051808303601f190181528282528051602091820120908301825260008084529151630178b8bf60e01b8152600481018290529093506001600160a01b03861690630178b8bf90602401602060405180830381865afa1580156113e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140c9190612774565b90506001600160a01b038116156114b65760408051631674750f60e21b8152600481018590526024810191909152601060448201526f4c374c5f4156415441525f494d41474560801b60648201526001600160a01b038216906359d1d43c90608401600060405180830381865afa15801561148b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114b39190810190612995565b91505b6000888152600b602052604090819020905163641af18160e11b81526001600160a01b0386169163c835e302916114f3918c918790600401612a0c565b600060405180830381865afa158015611510573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115389190810190612995565b98975050505050505050565b61154c611bca565b6001600160a01b0381166115b15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610882565b6115ba81611c24565b50565b6115c5611bca565b6001600160a01b038116600081815260096020526040808220805460ff19169055517f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811139190a250565b6000610937848484600161174a565b6000818152600360205260409020546001600160a01b03166115ba5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610882565b6000818152600360205260408120546001600160a01b03168061074f5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610882565b600081815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906117118261167c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6007546008546040516302571be360e01b8152600481019190915260009130916001600160a01b03909116906302571be390602401602060405180830381865afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c09190612774565b6001600160a01b0316146117e65760405162461bcd60e51b815260040161088290612791565b3360009081526009602052604090205460ff166118155760405162461bcd60e51b81526004016108829061285f565b61181e85610f22565b61185a5760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420617661696c61626c6560981b6044820152606401610882565b6000611866844261284c565b90506118756276a7004261284c565b6118826276a7008361284c565b116118c15760405162461bcd60e51b815260206004820152600f60248201526e667574757265206f766572666c6f7760881b6044820152606401610882565b6118ca84611d75565b6000868152600a6020908152604080832084905560039091529020546001600160a01b0316156118fd576118fd86611de0565b6119078587611e83565b8215611991576007546008546040516306ab592360e01b81526004810191909152602481018890526001600160a01b038781166044830152909116906306ab5923906064016020604051808303816000875af115801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906127b3565b505b846001600160a01b0316867fb3d987963d01b2f68493b4bdb130988f157ea43070d4ad840fee0466ed9370d9836040516119cd91815260200190565b60405180910390a395945050505050565b6000806119ea83610ce2565b9050806001600160a01b0316846001600160a01b03161480611a255750836001600160a01b0316611a1a846107e7565b6001600160a01b0316145b8061093757506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff16610937565b826001600160a01b0316611a6c8261167c565b6001600160a01b031614611a925760405162461bcd60e51b815260040161088290612ab2565b6001600160a01b038216611af45760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610882565b611b01838383600161201c565b826001600160a01b0316611b148261167c565b6001600160a01b031614611b3a5760405162461bcd60e51b815260040161088290612ab2565b600081815260056020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260048552838620805460001901905590871680865283862080546001019055868652600390945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000546001600160a01b03163314610dd05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610882565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816001600160a01b0316836001600160a01b031603611cd55760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610882565b6001600160a01b03838116600081815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611d4d848484611a59565b611d59848484846120a4565b610fdd5760405162461bcd60e51b815260040161088290612af7565b600080611d8183610dd2565b9150915080341015611dc75760405162461bcd60e51b815260206004820152600f60248201526e3737ba1032b737bab3b41031b7b4b760891b6044820152606401610882565b8015610923576109236001600160a01b038316826121a2565b6000611deb8261167c565b9050611dfb81600084600161201c565b611e048261167c565b600083815260056020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526004845282852080546000190190558785526003909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b038216611ed95760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610882565b6000818152600360205260409020546001600160a01b031615611f3e5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610882565b611f4c60008383600161201c565b6000818152600360205260409020546001600160a01b031615611fb15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610882565b6001600160a01b038216600081815260046020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001811115610fdd576001600160a01b03841615612062576001600160a01b0384166000908152600460205260408120805483929061205c908490612b49565b90915550505b6001600160a01b03831615610fdd576001600160a01b0383166000908152600460205260408120805483929061209990849061284c565b909155505050505050565b60006001600160a01b0384163b1561219a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906120e8903390899088908890600401612b5c565b6020604051808303816000875af1925050508015612123575060408051601f3d908101601f1916820190925261212091810190612b99565b60015b612180573d808015612151576040519150601f19603f3d011682016040523d82523d6000602084013e612156565b606091505b5080516000036121785760405162461bcd60e51b815260040161088290612af7565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610937565b506001610937565b804710156121f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610882565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461223f576040519150601f19603f3d011682016040523d82523d6000602084013e612244565b606091505b50509050806109235760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610882565b6001600160e01b0319811681146115ba57600080fd5b6000602082840312156122e357600080fd5b81356122ee816122bb565b9392505050565b60005b838110156123105781810151838201526020016122f8565b50506000910152565b600081518084526123318160208601602086016122f5565b601f01601f19169290920160200192915050565b6020815260006122ee6020830184612319565b60006020828403121561236a57600080fd5b5035919050565b6001600160a01b03811681146115ba57600080fd5b6000806040838503121561239957600080fd5b82356123a481612371565b946020939093013593505050565b6000806000606084860312156123c757600080fd5b8335925060208401356123d981612371565b929592945050506040919091013590565b6000806000606084860312156123ff57600080fd5b833561240a81612371565b925060208401356123d981612371565b6000806040838503121561242d57600080fd5b82359150602083013561243f81612371565b809150509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208285010111156124aa57600080fd5b60209290920196919550909350505050565b82151581526040602082015260006109376040830184612319565b6000602082840312156124e957600080fd5b81356122ee81612371565b6000806040838503121561250757600080fd5b823561251281612371565b91506020830135801515811461243f57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561256657612566612527565b604052919050565b600067ffffffffffffffff82111561258857612588612527565b50601f01601f191660200190565b60006125a96125a48461256e565b61253d565b90508281528383830111156125bd57600080fd5b828260208301376000602084830101529392505050565b600080600080608085870312156125ea57600080fd5b84356125f581612371565b9350602085013561260581612371565b925060408501359150606085013567ffffffffffffffff81111561262857600080fd5b8501601f8101871361263957600080fd5b61264887823560208401612596565b91505092959194509250565b60006020828403121561266657600080fd5b813567ffffffffffffffff81111561267d57600080fd5b8201601f8101841361268e57600080fd5b61093784823560208401612596565b600080604083850312156126b057600080fd5b50508035926020909101359150565b600080604083850312156126d257600080fd5b82356126dd81612371565b9150602083013561243f81612371565b600181811c9082168061270157607f821691505b60208210810361272157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60006020828403121561278657600080fd5b81516122ee81612371565b6020808252600890820152676e6f74206c69766560c01b604082015260600190565b6000602082840312156127c557600080fd5b5051919050565b8183823760009101908152919050565b6000806000606084860312156127f157600080fd5b83516127fc81612371565b60208501516040860151919450925061281481612371565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761074f5761074f61281f565b8082018082111561074f5761074f61281f565b6020808252600e908201526d3737ba1031b7b73a3937b63632b960911b604082015260600190565b601f82111561092357600081815260208120601f850160051c810160208610156128ae5750805b601f850160051c820191505b818110156128cd578281556001016128ba565b505050505050565b815167ffffffffffffffff8111156128ef576128ef612527565b612903816128fd84546126ed565b84612887565b602080601f83116001811461293857600084156129205750858301515b600019600386901b1c1916600185901b1785556128cd565b600085815260208120601f198616915b8281101561296757888601518255948401946001909101908401612948565b50858210156129855787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156129a757600080fd5b815167ffffffffffffffff8111156129be57600080fd5b8201601f810184136129cf57600080fd5b80516129dd6125a48261256e565b8181528560208385010111156129f257600080fd5b612a038260208301602086016122f5565b95945050505050565b8381526000602060608184015260008554612a26816126ed565b8060608701526080600180841660008114612a485760018114612a6257612a90565b60ff1985168984015283151560051b890183019550612a90565b8a6000528660002060005b85811015612a885781548b8201860152908301908801612a6d565b8a0184019650505b50505050508381036040850152612aa78186612319565b979650505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b8181038181111561074f5761074f61281f565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612b8f90830184612319565b9695505050505050565b600060208284031215612bab57600080fd5b81516122ee816122bb56fea264697066735822122071c71fbb47f2f4c345cc44f92d85422facfe5c8debd606ef5413b6245413420464736f6c63430008110033","sourceMap":"314:1004:110:-:0;;;352:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1390:113:38;;;;;;;;;;;;;-1:-1:-1;;;1390:113:38;;;;;;;;;;;;;;;;-1:-1:-1;;;1390:113:38;;;936:32:23;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;1456:5:38;:13;1464:5;1456;:13;:::i;:::-;-1:-1:-1;1479:7:38;:17;1489:7;1479;:17;:::i;:::-;-1:-1:-1;;440:3:110::1;:10:::0;;-1:-1:-1;;;;;;440:10:110::1;-1:-1:-1::0;;;;;440:10:110;;;::::1;::::0;;;::::1;::::0;;;460:8:::1;:20:::0;-1:-1:-1;314:1004:110;;640:96:43;719:10;;640:96::o;2433:187:23:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:365:127:-;107:6;115;168:2;156:9;147:7;143:23;139:32;136:52;;;184:1;181;174:12;136:52;210:16;;-1:-1:-1;;;;;255:31:127;;245:42;;235:70;;301:1;298;291:12;235:70;369:2;354:18;;;;348:25;324:5;;348:25;;-1:-1:-1;;;14:365:127:o;384:127::-;445:10;440:3;436:20;433:1;426:31;476:4;473:1;466:15;500:4;497:1;490:15;516:380;595:1;591:12;;;;638;;;659:61;;713:4;705:6;701:17;691:27;;659:61;766:2;758:6;755:14;735:18;732:38;729:161;;812:10;807:3;803:20;800:1;793:31;847:4;844:1;837:15;875:4;872:1;865:15;729:161;;516:380;;;:::o;1027:545::-;1129:2;1124:3;1121:11;1118:448;;;1165:1;1190:5;1186:2;1179:17;1235:4;1231:2;1221:19;1305:2;1293:10;1289:19;1286:1;1282:27;1276:4;1272:38;1341:4;1329:10;1326:20;1323:47;;;-1:-1:-1;1364:4:127;1323:47;1419:2;1414:3;1410:12;1407:1;1403:20;1397:4;1393:31;1383:41;;1474:82;1492:2;1485:5;1482:13;1474:82;;;1537:17;;;1518:1;1507:13;1474:82;;;1478:3;;;1118:448;1027:545;;;:::o;1748:1352::-;1868:10;;-1:-1:-1;;;;;1890:30:127;;1887:56;;;1923:18;;:::i;:::-;1952:97;2042:6;2002:38;2034:4;2028:11;2002:38;:::i;:::-;1996:4;1952:97;:::i;:::-;2104:4;;2168:2;2157:14;;2185:1;2180:663;;;;2887:1;2904:6;2901:89;;;-1:-1:-1;2956:19:127;;;2950:26;2901:89;-1:-1:-1;;1705:1:127;1701:11;;;1697:24;1693:29;1683:40;1729:1;1725:11;;;1680:57;3003:81;;2150:944;;2180:663;974:1;967:14;;;1011:4;998:18;;-1:-1:-1;;2216:20:127;;;2334:236;2348:7;2345:1;2342:14;2334:236;;;2437:19;;;2431:26;2416:42;;2529:27;;;;2497:1;2485:14;;;;2364:19;;2334:236;;;2338:3;2598:6;2589:7;2586:19;2583:201;;;2659:19;;;2653:26;-1:-1:-1;;2742:1:127;2738:14;;;2754:3;2734:24;2730:37;2726:42;2711:58;2696:74;;2583:201;-1:-1:-1;;;;;2830:1:127;2814:14;;;2810:22;2797:36;;-1:-1:-1;1748:1352:127:o;:::-;314:1004:110;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102045760003560e01c80638da5cb5b11610118578063c475abff116100a0578063ddf7fcb01161006f578063ddf7fcb014610651578063e985e9c514610667578063f2fde38b146106b0578063f6a74ed7146106d0578063fca247ac146106f057600080fd5b8063c475abff146105c1578063c87b56dd146105d4578063d6e4fa86146105f4578063da8c229e1461062157600080fd5b8063a7fc7a07116100e7578063a7fc7a071461051d578063b88d4fde1461053d578063b9cce3281461055d578063bc4205231461058a578063c1a287e2146105aa57600080fd5b80638da5cb5b146104aa57806395d89b41146104c857806396e494e8146104dd578063a22cb465146104fd57600080fd5b806342842e0e1161019b57806370a082311161016a57806370a08231146103c9578063715018a6146103e957806372b7692b146103fe5780638a5913691461044b5780638a59c83e1461046b57600080fd5b806342842e0e146103495780634622ab03146103695780634e543b26146103895780636352211e146103a957600080fd5b80630e297b45116101d75780630e297b45146102ba57806323b872dd146102db57806328ed4f6c146102fb578063302c96501461031b57600080fd5b806301ffc9a71461020957806306fdde031461023e578063081812fc14610260578063095ea7b314610298575b600080fd5b34801561021557600080fd5b506102296102243660046122d1565b610703565b60405190151581526020015b60405180910390f35b34801561024a57600080fd5b50610253610755565b6040516102359190612345565b34801561026c57600080fd5b5061028061027b366004612358565b6107e7565b6040516001600160a01b039091168152602001610235565b3480156102a457600080fd5b506102b86102b3366004612386565b61080e565b005b6102cd6102c83660046123b2565b610928565b604051908152602001610235565b3480156102e757600080fd5b506102b86102f63660046123ea565b61093f565b34801561030757600080fd5b506102b861031636600461241a565b610970565b34801561032757600080fd5b5061033b61033636600461244a565b610acf565b6040516102359291906124bc565b34801561035557600080fd5b506102b86103643660046123ea565b610bb8565b34801561037557600080fd5b50610253610384366004612358565b610bd3565b34801561039557600080fd5b506102b86103a43660046124d7565b610c6d565b3480156103b557600080fd5b506102806103c4366004612358565b610ce2565b3480156103d557600080fd5b506102cd6103e43660046124d7565b610d38565b3480156103f557600080fd5b506102b8610dbe565b34801561040a57600080fd5b506104327fc835e302b0f33819b000dd357b0bbc12c36ec56c9ddeb92addcb21798dcc4fde81565b6040516001600160e01b03199091168152602001610235565b34801561045757600080fd5b50600754610280906001600160a01b031681565b34801561047757600080fd5b5061048b610486366004612358565b610dd2565b604080516001600160a01b039093168352602083019190915201610235565b3480156104b657600080fd5b506000546001600160a01b0316610280565b3480156104d457600080fd5b50610253610f13565b3480156104e957600080fd5b506102296104f8366004612358565b610f22565b34801561050957600080fd5b506102b86105183660046124f4565b610f48565b34801561052957600080fd5b506102b86105383660046124d7565b610f57565b34801561054957600080fd5b506102b86105583660046125d4565b610fab565b34801561056957600080fd5b506102cd610578366004612358565b600a6020526000908152604090205481565b34801561059657600080fd5b506102b86105a5366004612654565b610fe3565b3480156105b657600080fd5b506102cd6276a70081565b6102cd6105cf36600461269d565b611038565b3480156105e057600080fd5b506102536105ef366004612358565b611270565b34801561060057600080fd5b506102cd61060f366004612358565b6000908152600a602052604090205490565b34801561062d57600080fd5b5061022961063c3660046124d7565b60096020526000908152604090205460ff1681565b34801561065d57600080fd5b506102cd60085481565b34801561067357600080fd5b506102296106823660046126bf565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205460ff1690565b3480156106bc57600080fd5b506102b86106cb3660046124d7565b611544565b3480156106dc57600080fd5b506102b86106eb3660046124d7565b6115bd565b6102cd6106fe3660046123b2565b61160e565b60006001600160e01b031982166301ffc9a760e01b148061073457506001600160e01b031982166380ac58cd60e01b145b8061074f57506001600160e01b03198216630a3b53db60e21b145b92915050565b606060018054610764906126ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610790906126ed565b80156107dd5780601f106107b2576101008083540402835291602001916107dd565b820191906000526020600020905b8154815290600101906020018083116107c057829003601f168201915b5050505050905090565b60006107f28261161d565b506000908152600560205260409020546001600160a01b031690565b60006108198261167c565b9050806001600160a01b0316836001600160a01b03160361088b5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b03821614806108a757506108a78133610682565b6109195760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610882565b61092383836116dc565b505050565b6000610937848484600061174a565b949350505050565b61094933826119de565b6109655760405162461bcd60e51b815260040161088290612727565b610923838383611a59565b6007546008546040516302571be360e01b8152600481019190915230916001600160a01b0316906302571be390602401602060405180830381865afa1580156109bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e19190612774565b6001600160a01b031614610a075760405162461bcd60e51b815260040161088290612791565b610a1133836119de565b610a4d5760405162461bcd60e51b815260206004820152600d60248201526c1858d8d95cdcc819195b9a5959609a1b6044820152606401610882565b6007546008546040516306ab592360e01b81526004810191909152602481018490526001600160a01b038381166044830152909116906306ab5923906064016020604051808303816000875af1158015610aab573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092391906127b3565b60006060610adb611bca565b600754600854604051630178b8bf60e01b81526001600160a01b0390921691630178b8bf91610b109160040190815260200190565b602060405180830381865afa158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190612774565b6001600160a01b03168484604051610b6a9291906127cc565b6000604051808303816000865af19150503d8060008114610ba7576040519150601f19603f3d011682016040523d82523d6000602084013e610bac565b606091505b50915091509250929050565b61092383838360405180602001604052806000815250610fab565b600b6020526000908152604090208054610bec906126ed565b80601f0160208091040260200160405190810160405280929190818152602001828054610c18906126ed565b8015610c655780601f10610c3a57610100808354040283529160200191610c65565b820191906000526020600020905b815481529060010190602001808311610c4857829003601f168201915b505050505081565b610c75611bca565b600754600854604051630c4b7b8560e11b815260048101919091526001600160a01b03838116602483015290911690631896f70a90604401600060405180830381600087803b158015610cc757600080fd5b505af1158015610cdb573d6000803e3d6000fd5b5050505050565b6000818152600a60205260408120544210610d2f5760405162461bcd60e51b815260206004820152600d60248201526c1b19585cd948195e1c1a5c9959609a1b6044820152606401610882565b61074f8261167c565b60006001600160a01b038216610da25760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610882565b506001600160a01b031660009081526004602052604090205490565b610dc6611bca565b610dd06000611c24565b565b600754604051630178b8bf60e01b81527fd0340a34011af087b374bbdc5136a48a841af1b55b0af1143ced23c89cf182c960048201526000918291829182916001600160a01b0390911690630178b8bf90602401602060405180830381865afa158015610e43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e679190612774565b6040516317ee1a1960e01b81527fd0340a34011af087b374bbdc5136a48a841af1b55b0af1143ced23c89cf182c960048201523060248201526001600160a01b0391909116906317ee1a1990604401606060405180830381865afa158015610ed3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef791906127dc565b50909250905081610f088683612835565b935093505050915091565b606060028054610764906126ed565b6000818152600a60205260408120544290610f41906276a7009061284c565b1092915050565b610f53338383611c74565b5050565b610f5f611bca565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f0a8bb31534c0ed46f380cb867bd5c803a189ced9a764e30b3a4991a9901d74749190a250565b610fb533836119de565b610fd15760405162461bcd60e51b815260040161088290612727565b610fdd84848484611d42565b50505050565b3360009081526009602052604090205460ff166110125760405162461bcd60e51b81526004016108829061285f565b80516020808301919091206000818152600b90925260409091208190610fdd84826128d5565b6007546008546040516302571be360e01b8152600481019190915260009130916001600160a01b03909116906302571be390602401602060405180830381865afa15801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae9190612774565b6001600160a01b0316146110d45760405162461bcd60e51b815260040161088290612791565b3360009081526009602052604090205460ff166111035760405162461bcd60e51b81526004016108829061285f565b600082116111465760405162461bcd60e51b815260206004820152601060248201526f34b73b30b634b210323ab930ba34b7b760811b6044820152606401610882565b61114f82611d75565b6000838152600a60205260409020544261116c6276a7008361284c565b10156111ab5760405162461bcd60e51b815260206004820152600e60248201526d1b9bdd081c9959da5cdd195c995960921b6044820152606401610882565b6111b86276a7008461284c565b6276a7006111c6858461284c565b6111d0919061284c565b1161120f5760405162461bcd60e51b815260206004820152600f60248201526e667574757265206f766572666c6f7760881b6044820152606401610882565b611219838261284c565b6000858152600a6020526040908190208290555190915084907f9b87a00e30f1ac65d898f070f8a3488fe60517182d0a2098e1b4b93a54aa9bd6906112619084815260200190565b60405180910390a29392505050565b600854600754604051630178b8bf60e01b815260048101839052606092916001600160a01b0316906000908290630178b8bf90602401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190612774565b6040516330dca1c360e21b81526004810185905230602482015263641af18160e11b60448201526001600160a01b03919091169063c372870c90606401602060405180830381865afa158015611341573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113659190612774565b604080516020810186905290810187905290915060009060600160408051808303601f190181528282528051602091820120908301825260008084529151630178b8bf60e01b8152600481018290529093506001600160a01b03861690630178b8bf90602401602060405180830381865afa1580156113e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140c9190612774565b90506001600160a01b038116156114b65760408051631674750f60e21b8152600481018590526024810191909152601060448201526f4c374c5f4156415441525f494d41474560801b60648201526001600160a01b038216906359d1d43c90608401600060405180830381865afa15801561148b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114b39190810190612995565b91505b6000888152600b602052604090819020905163641af18160e11b81526001600160a01b0386169163c835e302916114f3918c918790600401612a0c565b600060405180830381865afa158015611510573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115389190810190612995565b98975050505050505050565b61154c611bca565b6001600160a01b0381166115b15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610882565b6115ba81611c24565b50565b6115c5611bca565b6001600160a01b038116600081815260096020526040808220805460ff19169055517f33d83959be2573f5453b12eb9d43b3499bc57d96bd2f067ba44803c859e811139190a250565b6000610937848484600161174a565b6000818152600360205260409020546001600160a01b03166115ba5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610882565b6000818152600360205260408120546001600160a01b03168061074f5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610882565b600081815260056020526040902080546001600160a01b0319166001600160a01b03841690811790915581906117118261167c565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6007546008546040516302571be360e01b8152600481019190915260009130916001600160a01b03909116906302571be390602401602060405180830381865afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c09190612774565b6001600160a01b0316146117e65760405162461bcd60e51b815260040161088290612791565b3360009081526009602052604090205460ff166118155760405162461bcd60e51b81526004016108829061285f565b61181e85610f22565b61185a5760405162461bcd60e51b815260206004820152600d60248201526c6e6f7420617661696c61626c6560981b6044820152606401610882565b6000611866844261284c565b90506118756276a7004261284c565b6118826276a7008361284c565b116118c15760405162461bcd60e51b815260206004820152600f60248201526e667574757265206f766572666c6f7760881b6044820152606401610882565b6118ca84611d75565b6000868152600a6020908152604080832084905560039091529020546001600160a01b0316156118fd576118fd86611de0565b6119078587611e83565b8215611991576007546008546040516306ab592360e01b81526004810191909152602481018890526001600160a01b038781166044830152909116906306ab5923906064016020604051808303816000875af115801561196b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198f91906127b3565b505b846001600160a01b0316867fb3d987963d01b2f68493b4bdb130988f157ea43070d4ad840fee0466ed9370d9836040516119cd91815260200190565b60405180910390a395945050505050565b6000806119ea83610ce2565b9050806001600160a01b0316846001600160a01b03161480611a255750836001600160a01b0316611a1a846107e7565b6001600160a01b0316145b8061093757506001600160a01b0380821660009081526006602090815260408083209388168352929052205460ff16610937565b826001600160a01b0316611a6c8261167c565b6001600160a01b031614611a925760405162461bcd60e51b815260040161088290612ab2565b6001600160a01b038216611af45760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610882565b611b01838383600161201c565b826001600160a01b0316611b148261167c565b6001600160a01b031614611b3a5760405162461bcd60e51b815260040161088290612ab2565b600081815260056020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260048552838620805460001901905590871680865283862080546001019055868652600390945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000546001600160a01b03163314610dd05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610882565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816001600160a01b0316836001600160a01b031603611cd55760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610882565b6001600160a01b03838116600081815260066020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611d4d848484611a59565b611d59848484846120a4565b610fdd5760405162461bcd60e51b815260040161088290612af7565b600080611d8183610dd2565b9150915080341015611dc75760405162461bcd60e51b815260206004820152600f60248201526e3737ba1032b737bab3b41031b7b4b760891b6044820152606401610882565b8015610923576109236001600160a01b038316826121a2565b6000611deb8261167c565b9050611dfb81600084600161201c565b611e048261167c565b600083815260056020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526004845282852080546000190190558785526003909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b038216611ed95760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610882565b6000818152600360205260409020546001600160a01b031615611f3e5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610882565b611f4c60008383600161201c565b6000818152600360205260409020546001600160a01b031615611fb15760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610882565b6001600160a01b038216600081815260046020908152604080832080546001019055848352600390915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001811115610fdd576001600160a01b03841615612062576001600160a01b0384166000908152600460205260408120805483929061205c908490612b49565b90915550505b6001600160a01b03831615610fdd576001600160a01b0383166000908152600460205260408120805483929061209990849061284c565b909155505050505050565b60006001600160a01b0384163b1561219a57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906120e8903390899088908890600401612b5c565b6020604051808303816000875af1925050508015612123575060408051601f3d908101601f1916820190925261212091810190612b99565b60015b612180573d808015612151576040519150601f19603f3d011682016040523d82523d6000602084013e612156565b606091505b5080516000036121785760405162461bcd60e51b815260040161088290612af7565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050610937565b506001610937565b804710156121f25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610882565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461223f576040519150601f19603f3d011682016040523d82523d6000602084013e612244565b606091505b50509050806109235760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610882565b6001600160e01b0319811681146115ba57600080fd5b6000602082840312156122e357600080fd5b81356122ee816122bb565b9392505050565b60005b838110156123105781810151838201526020016122f8565b50506000910152565b600081518084526123318160208601602086016122f5565b601f01601f19169290920160200192915050565b6020815260006122ee6020830184612319565b60006020828403121561236a57600080fd5b5035919050565b6001600160a01b03811681146115ba57600080fd5b6000806040838503121561239957600080fd5b82356123a481612371565b946020939093013593505050565b6000806000606084860312156123c757600080fd5b8335925060208401356123d981612371565b929592945050506040919091013590565b6000806000606084860312156123ff57600080fd5b833561240a81612371565b925060208401356123d981612371565b6000806040838503121561242d57600080fd5b82359150602083013561243f81612371565b809150509250929050565b6000806020838503121561245d57600080fd5b823567ffffffffffffffff8082111561247557600080fd5b818501915085601f83011261248957600080fd5b81358181111561249857600080fd5b8660208285010111156124aa57600080fd5b60209290920196919550909350505050565b82151581526040602082015260006109376040830184612319565b6000602082840312156124e957600080fd5b81356122ee81612371565b6000806040838503121561250757600080fd5b823561251281612371565b91506020830135801515811461243f57600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561256657612566612527565b604052919050565b600067ffffffffffffffff82111561258857612588612527565b50601f01601f191660200190565b60006125a96125a48461256e565b61253d565b90508281528383830111156125bd57600080fd5b828260208301376000602084830101529392505050565b600080600080608085870312156125ea57600080fd5b84356125f581612371565b9350602085013561260581612371565b925060408501359150606085013567ffffffffffffffff81111561262857600080fd5b8501601f8101871361263957600080fd5b61264887823560208401612596565b91505092959194509250565b60006020828403121561266657600080fd5b813567ffffffffffffffff81111561267d57600080fd5b8201601f8101841361268e57600080fd5b61093784823560208401612596565b600080604083850312156126b057600080fd5b50508035926020909101359150565b600080604083850312156126d257600080fd5b82356126dd81612371565b9150602083013561243f81612371565b600181811c9082168061270157607f821691505b60208210810361272157634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b60006020828403121561278657600080fd5b81516122ee81612371565b6020808252600890820152676e6f74206c69766560c01b604082015260600190565b6000602082840312156127c557600080fd5b5051919050565b8183823760009101908152919050565b6000806000606084860312156127f157600080fd5b83516127fc81612371565b60208501516040860151919450925061281481612371565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761074f5761074f61281f565b8082018082111561074f5761074f61281f565b6020808252600e908201526d3737ba1031b7b73a3937b63632b960911b604082015260600190565b601f82111561092357600081815260208120601f850160051c810160208610156128ae5750805b601f850160051c820191505b818110156128cd578281556001016128ba565b505050505050565b815167ffffffffffffffff8111156128ef576128ef612527565b612903816128fd84546126ed565b84612887565b602080601f83116001811461293857600084156129205750858301515b600019600386901b1c1916600185901b1785556128cd565b600085815260208120601f198616915b8281101561296757888601518255948401946001909101908401612948565b50858210156129855787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156129a757600080fd5b815167ffffffffffffffff8111156129be57600080fd5b8201601f810184136129cf57600080fd5b80516129dd6125a48261256e565b8181528560208385010111156129f257600080fd5b612a038260208301602086016122f5565b95945050505050565b8381526000602060608184015260008554612a26816126ed565b8060608701526080600180841660008114612a485760018114612a6257612a90565b60ff1985168984015283151560051b890183019550612a90565b8a6000528660002060005b85811015612a885781548b8201860152908301908801612a6d565b8a0184019650505b50505050508381036040850152612aa78186612319565b979650505050505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b8181038181111561074f5761074f61281f565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612b8f90830184612319565b9695505050505050565b600060208284031215612bab57600080fd5b81516122ee816122bb56fea264697066735822122071c71fbb47f2f4c345cc44f92d85422facfe5c8debd606ef5413b6245413420464736f6c63430008110033","sourceMap":"314:1004:110:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10743:247:60;;;;;;;;;;-1:-1:-1;10743:247:60;;;;;:::i;:::-;;:::i;:::-;;;565:14:127;;558:22;540:41;;528:2;513:18;10743:247:60;;;;;;;;2471:98:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;;;;;-1:-1:-1;3935:167:38;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:127;;;1679:51;;1667:2;1652:18;3935:167:38;1533:203:127;3468:406:38;;;;;;;;;;-1:-1:-1;3468:406:38;;;;;:::i;:::-;;:::i;:::-;;6815:157:60;;;;;;:::i;:::-;;:::i;:::-;;;2731:25:127;;;2719:2;2704:18;6815:157:60;2585:177:127;4612:326:38;;;;;;;;;;-1:-1:-1;4612:326:38;;;;;:::i;:::-;;:::i;9134:208:60:-;;;;;;;;;;-1:-1:-1;9134:208:60;;;;;:::i;:::-;;:::i;4687:231::-;;;;;;;;;;-1:-1:-1;4687:231:60;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;5004:179:38:-;;;;;;;;;;-1:-1:-1;5004:179:38;;;;;:::i;:::-;;:::i;850:39:60:-;;;;;;;;;;-1:-1:-1;850:39:60;;;;;:::i;:::-;;:::i;4304:121::-;;;;;;;;;;-1:-1:-1;4304:121:60;;;;;:::i;:::-;;:::i;3211:251::-;;;;;;;;;;-1:-1:-1;3211:251:60;;;;;:::i;:::-;;:::i;1929:204:38:-;;;;;;;;;;-1:-1:-1;1929:204:38;;;;;:::i;:::-;;:::i;1831:101:23:-;;;;;;;;;;;;;:::i;896:96:60:-;;;;;;;;;;;;947:44;896:96;;;;;-1:-1:-1;;;;;;4862:33:127;;;4844:52;;4832:2;4817:18;896:96:60;4700:202:127;672:15:61;;;;;;;;;;-1:-1:-1;672:15:61;;;;-1:-1:-1;;;;;672:15:61;;;5169:262:60;;;;;;;;;;-1:-1:-1;5169:262:60;;;;;:::i;:::-;;:::i;:::-;;;;-1:-1:-1;;;;;5321:32:127;;;5303:51;;5385:2;5370:18;;5363:34;;;;5276:18;5169:262:60;5129:274:127;1201:85:23;;;;;;;;;;-1:-1:-1;1247:7:23;1273:6;-1:-1:-1;;;;;1273:6:23;1201:85;;2633:102:38;;;;;;;;;;;;;:::i;5853:179:60:-;;;;;;;;;;-1:-1:-1;5853:179:60;;;;;:::i;:::-;;:::i;4169:153:38:-;;;;;;;;;;-1:-1:-1;4169:153:38;;;;;:::i;:::-;;:::i;3645:163:60:-;;;;;;;;;;-1:-1:-1;3645:163:60;;;;;:::i;:::-;;:::i;5249:314:38:-;;;;;;;;;;-1:-1:-1;5249:314:38;;;;;:::i;:::-;;:::i;804:40:60:-;;;;;;;;;;-1:-1:-1;804:40:60;;;;;:::i;:::-;;;;;;;;;;;;;;9930:216;;;;;;;;;;-1:-1:-1;9930:216:60;;;;;:::i;:::-;;:::i;263:43:61:-;;;;;;;;;;;;299:7;263:43;;8363:572:60;;;;;;:::i;:::-;;:::i;648:668:110:-;;;;;;;;;;-1:-1:-1;648:668:110;;;;;:::i;:::-;;:::i;5570:106:60:-;;;;;;;;;;-1:-1:-1;5570:106:60;;;;;:::i;:::-;5634:4;5657:12;;;:8;:12;;;;;;;5570:106;863:41:61;;;;;;;;;;-1:-1:-1;863:41:61;;;;;:::i;:::-;;;;;;;;;;;;;;;;757:23;;;;;;;;;;;;;;;;4388:162:38;;;;;;;;;;-1:-1:-1;4388:162:38;;;;;:::i;:::-;-1:-1:-1;;;;;4508:25:38;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;2081:198:23;;;;;;;;;;-1:-1:-1;2081:198:23;;;;;:::i;:::-;;:::i;3975:169:60:-;;;;;;;;;;-1:-1:-1;3975:169:60;;;;;:::i;:::-;;:::i;6327:161::-;;;;;;:::i;:::-;;:::i;10743:247::-;10838:4;-1:-1:-1;;;;;;10861:33:60;;-1:-1:-1;;;10861:33:60;;:77;;-1:-1:-1;;;;;;;10913:25:60;;-1:-1:-1;;;10913:25:60;10861:77;:122;;;-1:-1:-1;;;;;;;10957:26:60;;-1:-1:-1;;;10957:26:60;10861:122;10854:129;10743:247;-1:-1:-1;;10743:247:60:o;2471:98:38:-;2525:13;2557:5;2550:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:38;;;;:15;:24;;;;;;-1:-1:-1;;;;;4071:24:38;;3935:167::o;3468:406::-;3548:13;3564:23;3579:7;3564:14;:23::i;:::-;3548:39;;3611:5;-1:-1:-1;;;;;3605:11:38;:2;-1:-1:-1;;;;;3605:11:38;;3597:57;;;;-1:-1:-1;;;3597:57:38;;9442:2:127;3597:57:38;;;9424:21:127;9481:2;9461:18;;;9454:30;9520:34;9500:18;;;9493:62;-1:-1:-1;;;9571:18:127;;;9564:31;9612:19;;3597:57:38;;;;;;;;;719:10:43;-1:-1:-1;;;;;3686:21:38;;;;:62;;-1:-1:-1;3711:37:38;3728:5;719:10:43;4388:162:38;:::i;3711:37::-;3665:170;;;;-1:-1:-1;;;3665:170:38;;9844:2:127;3665:170:38;;;9826:21:127;9883:2;9863:18;;;9856:30;9922:34;9902:18;;;9895:62;9993:31;9973:18;;;9966:59;10042:19;;3665:170:38;9642:425:127;3665:170:38;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3538:336;3468:406;;:::o;6815:157:60:-;6907:4;6928:37;6938:2;6942:5;6949:8;6959:5;6928:9;:37::i;:::-;6921:44;6815:157;-1:-1:-1;;;;6815:157:60:o;4612:326:38:-;4801:41;719:10:43;4834:7:38;4801:18;:41::i;:::-;4793:99;;;;-1:-1:-1;;;4793:99:38;;;;;;;:::i;:::-;4903:28;4913:4;4919:2;4923:7;4903:9;:28::i;9134:208:60:-;2751:3;;2761:8;;2751:19;;-1:-1:-1;;;2751:19:60;;;;;2731:25:127;;;;2782:4:60;;-1:-1:-1;;;;;2751:3:60;;:9;;2704:18:127;;2751:19:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2751:36:60;;2743:57;;;;-1:-1:-1;;;2743:57:60;;;;;;;:::i;:::-;9221:35:::1;9240:10;9252:3;9221:18;:35::i;:::-;9213:61;;;::::0;-1:-1:-1;;;9213:61:60;;11280:2:127;9213:61:60::1;::::0;::::1;11262:21:127::0;11319:2;11299:18;;;11292:30;-1:-1:-1;;;11338:18:127;;;11331:43;11391:18;;9213:61:60::1;11078:337:127::0;9213:61:60::1;9284:3;::::0;9304:8:::1;::::0;9284:51:::1;::::0;-1:-1:-1;;;9284:51:60;;::::1;::::0;::::1;11622:25:127::0;;;;11663:18;;;11656:34;;;-1:-1:-1;;;;;11726:32:127;;;11706:18;;;11699:60;9284:3:60;;::::1;::::0;:19:::1;::::0;11595:18:127;;9284:51:60::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4687:231::-:0;4787:4;4793:12;1094:13:23;:11;:13::i;:::-;4873:3:60::1;::::0;4886:8:::1;::::0;4873:22:::1;::::0;-1:-1:-1;;;4873:22:60;;-1:-1:-1;;;;;4873:3:60;;::::1;::::0;:12:::1;::::0;:22:::1;::::0;::::1;;2731:25:127::0;;;2719:2;2704:18;;2585:177;4873:22:60::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4873:27:60::1;4901:9;;4873:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4866:45;;;;4687:231:::0;;;;;:::o;5004:179:38:-;5137:39;5154:4;5160:2;5164:7;5137:39;;;;;;;;;;;;:16;:39::i;850::60:-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4304:121::-;1094:13:23;:11;:13::i;:::-;4382:3:60::1;::::0;4398:8:::1;::::0;4382:36:::1;::::0;-1:-1:-1;;;4382:36:60;;::::1;::::0;::::1;12409:25:127::0;;;;-1:-1:-1;;;;;12470:32:127;;;12450:18;;;12443:60;4382:3:60;;::::1;::::0;:15:::1;::::0;12382:18:127;;4382:36:60::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4304:121:::0;:::o;3211:251::-;3292:7;3363:17;;;:8;:17;;;;;;3383:15;-1:-1:-1;3355:61:60;;;;-1:-1:-1;;;3355:61:60;;12716:2:127;3355:61:60;;;12698:21:127;12755:2;12735:18;;;12728:30;-1:-1:-1;;;12774:18:127;;;12767:43;12827:18;;3355:61:60;12514:337:127;3355:61:60;3433:22;3447:7;3433:13;:22::i;1929:204:38:-;2001:7;-1:-1:-1;;;;;2028:19:38;;2020:73;;;;-1:-1:-1;;;2020:73:38;;13058:2:127;2020:73:38;;;13040:21:127;13097:2;13077:18;;;13070:30;13136:34;13116:18;;;13109:62;-1:-1:-1;;;13187:18:127;;;13180:39;13236:19;;2020:73:38;12856:405:127;2020:73:38;-1:-1:-1;;;;;;2110:16:38;;;;;:9;:16;;;;;;;1929:204::o;1831:101:23:-;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;5169:262:60:-;5314:3;;:23;;-1:-1:-1;;;5314:23:60;;1035:66;5314:23;;;2731:25:127;5224:7:60;;;;;;;;-1:-1:-1;;;;;5314:3:60;;;;:12;;2704:18:127;;5314:23:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5295:77;;-1:-1:-1;;;5295:77:60;;1035:66;5295:77;;;12409:25:127;5366:4:60;12450:18:127;;;12443:60;-1:-1:-1;;;;;5295:51:60;;;;;;;12382:18:127;;5295:77:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5252:120:60;;-1:-1:-1;5252:120:60;-1:-1:-1;5252:120:60;5404:19;5414:9;5252:120;5404:19;:::i;:::-;5382:42;;;;;;5169:262;;;:::o;2633:102:38:-;2689:13;2721:7;2714:14;;;;;:::i;5853:179:60:-;5913:4;5980:12;;;:8;:12;;;;;;6010:15;;5980:27;;299:7:61;;5980:27:60;:::i;:::-;:45;;5853:179;-1:-1:-1;;5853:179:60:o;4169:153:38:-;4263:52;719:10:43;4296:8:38;4306;4263:18;:52::i;:::-;4169:153;;:::o;3645:163:60:-;1094:13:23;:11;:13::i;:::-;-1:-1:-1;;;;;3727:24:60;::::1;;::::0;;;:11:::1;:24;::::0;;;;;:31;;-1:-1:-1;;3727:31:60::1;3754:4;3727:31;::::0;;3773:28;::::1;::::0;3727:24;3773:28:::1;3645:163:::0;:::o;5249:314:38:-;5417:41;719:10:43;5450:7:38;5417:18;:41::i;:::-;5409:99;;;;-1:-1:-1;;;5409:99:38;;;;;;;:::i;:::-;5518:38;5532:4;5538:2;5542:7;5551:4;5518:13;:38::i;:::-;5249:314;;;;:::o;9930:216:60:-;2878:10;2866:23;;;;:11;:23;;;;;;;;2858:50;;;;-1:-1:-1;;;2858:50:60;;;;;;;:::i;:::-;10039:23;;::::1;::::0;;::::1;::::0;;;;10022:14:::1;10116:15:::0;;;:5:::1;:15:::0;;;;;;;10039:23;;10116::::1;10055:5:::0;10116:15;:23:::1;:::i;8363:572::-:0;2751:3;;2761:8;;2751:19;;-1:-1:-1;;;2751:19:60;;;;;2731:25:127;;;;8464:4:60;;2782;;-1:-1:-1;;;;;2751:3:60;;;;:9;;2704:18:127;;2751:19:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2751:36:60;;2743:57;;;;-1:-1:-1;;;2743:57:60;;;;;;;:::i;:::-;2878:10:::1;2866:23;::::0;;;:11:::1;:23;::::0;;;;;::::1;;2858:50;;;;-1:-1:-1::0;;;2858:50:60::1;;;;;;;:::i;:::-;8500:1:::2;8488:9;:13;8480:42;;;::::0;-1:-1:-1;;;8480:42:60;;16901:2:127;8480:42:60::2;::::0;::::2;16883:21:127::0;16940:2;16920:18;;;16913:30;-1:-1:-1;;;16959:18:127;;;16952:46;17015:18;;8480:42:60::2;16699:340:127::0;8480:42:60::2;8532:26;8548:9;8532:15;:26::i;:::-;8577:17;8597:13:::0;;;:8:::2;:13;::::0;;;;;8656:15:::2;8628:24;299:7:61;8597:13:60::0;8628:24:::2;:::i;:::-;:43;;8620:70;;;::::0;-1:-1:-1;;;8620:70:60;;17246:2:127;8620:70:60::2;::::0;::::2;17228:21:127::0;17285:2;17265:18;;;17258:30;-1:-1:-1;;;17304:18:127;;;17297:44;17358:18;;8620:70:60::2;17044:338:127::0;8620:70:60::2;8747:24;299:7:61;8747:9:60::0;:24:::2;:::i;:::-;299:7:61;8708:21:60;8720:9:::0;8708;:21:::2;:::i;:::-;:36;;;;:::i;:::-;:63;8700:91;;;::::0;-1:-1:-1;;;8700:91:60;;17589:2:127;8700:91:60::2;::::0;::::2;17571:21:127::0;17628:2;17608:18;;;17601:30;-1:-1:-1;;;17647:18:127;;;17640:45;17702:18;;8700:91:60::2;17387:339:127::0;8700:91:60::2;8802:22;8815:9:::0;8802:22;::::2;:::i;:::-;8834:13;::::0;;;:8:::2;:13;::::0;;;;;;:25;;;8875:27;8802:22;;-1:-1:-1;8843:3:60;;8875:27:::2;::::0;::::2;::::0;8802:22;2731:25:127;;2719:2;2704:18;;2585:177;8875:27:60::2;;;;;;;;8919:9:::0;8363:572;-1:-1:-1;;;8363:572:60:o;648:668:110:-;763:8;;793:3;;844:24;;-1:-1:-1;;;844:24:110;;;;;2731:25:127;;;718:13:110;;763:8;-1:-1:-1;;;;;793:3:110;;743:17;;793:3;;844:13;;2704:18:127;;844:24:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;823:104;;-1:-1:-1;;;823:104:110;;;;;17931:25:127;;;901:4:110;17972:18:127;;;17965:60;-1:-1:-1;;;18041:18:127;;;18034:61;-1:-1:-1;;;;;823:58:110;;;;;;;17904:18:127;;823:104:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;967:41;;;;;;18263:19:127;;;18298:12;;;18291:28;;;806:121:110;;-1:-1:-1;937:17:110;;18335:12:127;;967:41:110;;;;;;-1:-1:-1;;967:41:110;;;;;;957:52;;967:41;957:52;;;;1028:32;;;;;-1:-1:-1;1028:32:110;;;1090:24;;-1:-1:-1;;;1090:24:110;;;;;2731:25:127;;;957:52:110;;-1:-1:-1;;;;;;1090:13:110;;;;;2704:18:127;;1090:24:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1070:44;-1:-1:-1;;;;;;1128:23:110;;;1124:105;;1169:60;;;-1:-1:-1;;;1169:60:110;;;;;18570:25:127;;;18611:18;;;18604:30;;;;18670:2;18650:18;;;18643:30;-1:-1:-1;;;18689:18:127;;;18682:46;-1:-1:-1;;;;;1169:29:110;;;;;18745:19:127;;1169:60:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1169:60:110;;;;;;;;;;;;:::i;:::-;1153:76;;1124:105;1283:10;;;;:5;:10;;;;;;;1246:63;;-1:-1:-1;;;1246:63:110;;-1:-1:-1;;;;;1246:31:110;;;;;:63;;1278:3;;1295:13;;1246:63;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1246:63:110;;;;;;;;;;;;:::i;:::-;1239:70;648:668;-1:-1:-1;;;;;;;;648:668:110:o;2081:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:23;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:23;;20801:2:127;2161:73:23::1;::::0;::::1;20783:21:127::0;20840:2;20820:18;;;20813:30;20879:34;20859:18;;;20852:62;-1:-1:-1;;;20930:18:127;;;20923:36;20976:19;;2161:73:23::1;20599:402:127::0;2161:73:23::1;2244:28;2263:8;2244:18;:28::i;:::-;2081:198:::0;:::o;3975:169:60:-;1094:13:23;:11;:13::i;:::-;-1:-1:-1;;;;;4060:24:60;::::1;4087:5;4060:24:::0;;;:11:::1;:24;::::0;;;;;:32;;-1:-1:-1;;4060:32:60::1;::::0;;4107:30;::::1;::::0;4087:5;4107:30:::1;3975:169:::0;:::o;6327:161::-;6424:4;6445:36;6455:2;6459:5;6466:8;6476:4;6445:9;:36::i;13466:133:38:-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;13539:53;;;;-1:-1:-1;;;13539:53:38;;21208:2:127;13539:53:38;;;21190:21:127;21247:2;21227:18;;;21220:30;-1:-1:-1;;;21266:18:127;;;21259:54;21330:18;;13539:53:38;21006:348:127;2190:219:38;2262:7;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;;2324:56;;;;-1:-1:-1;;;2324:56:38;;21208:2:127;2324:56:38;;;21190:21:127;21247:2;21227:18;;;21220:30;-1:-1:-1;;;21266:18:127;;;21259:54;21330:18;;2324:56:38;21006:348:127;12768:171:38;12842:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;12842:29:38;-1:-1:-1;;;;;12842:29:38;;;;;;;;:24;;12895:23;12842:24;12895:14;:23::i;:::-;-1:-1:-1;;;;;12886:46:38;;;;;;;;;;;12768:171;;:::o;7370:753:60:-;2751:3;;2761:8;;2751:19;;-1:-1:-1;;;2751:19:60;;;;;2731:25:127;;;;7496:4:60;;2782;;-1:-1:-1;;;;;2751:3:60;;;;:9;;2704:18:127;;2751:19:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2751:36:60;;2743:57;;;;-1:-1:-1;;;2743:57:60;;;;;;;:::i;:::-;2878:10:::1;2866:23;::::0;;;:11:::1;:23;::::0;;;;;::::1;;2858:50;;;;-1:-1:-1::0;;;2858:50:60::1;;;;;;;:::i;:::-;7520:14:::2;7530:3;7520:9;:14::i;:::-;7512:40;;;::::0;-1:-1:-1;;;7512:40:60;;21561:2:127;7512:40:60::2;::::0;::::2;21543:21:127::0;21600:2;21580:18;;;21573:30;-1:-1:-1;;;21619:18:127;;;21612:43;21672:18;;7512:40:60::2;21359:337:127::0;7512:40:60::2;7562:16;7581:27;7599:9:::0;7581:15:::2;:27;:::i;:::-;7562:46:::0;-1:-1:-1;7652:30:60::2;299:7:61;7652:15:60;:30;:::i;:::-;7626:23;299:7:61;7626:8:60::0;:23:::2;:::i;:::-;:56;7618:84;;;::::0;-1:-1:-1;;;7618:84:60;;17589:2:127;7618:84:60::2;::::0;::::2;17571:21:127::0;17628:2;17608:18;;;17601:30;-1:-1:-1;;;17647:18:127;;;17640:45;17702:18;;7618:84:60::2;17387:339:127::0;7618:84:60::2;7712:26;7728:9;7712:15;:26::i;:::-;7749:13;::::0;;;:8:::2;:13;::::0;;;;;;;:24;;;6930:7:38;:16;;;;;;-1:-1:-1;;;;;6930:16:38;7787:27:60;7783:122:::2;;7884:10;7890:3;7884:5;:10::i;:::-;7914:18;7920:6;7928:3;7914:5;:18::i;:::-;7946:15;7942:97;;;7977:3;::::0;7997:8:::2;::::0;7977:51:::2;::::0;-1:-1:-1;;;7977:51:60;;::::2;::::0;::::2;11622:25:127::0;;;;11663:18;;;11656:34;;;-1:-1:-1;;;;;11726:32:127;;;11706:18;;;11699:60;7977:3:60;;::::2;::::0;:19:::2;::::0;11595:18:127;;7977:51:60::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7942:97;8074:6;-1:-1:-1::0;;;;;8054:37:60::2;8069:3;8054:37;8082:8;8054:37;;;;2731:25:127::0;;2719:2;2704:18;;2585:177;8054:37:60::2;;;;;;;;8108:8:::0;7370:753;-1:-1:-1;;;;;7370:753:60:o;2458:255::-;2552:4;2568:13;2584:16;2592:7;2584;:16::i;:::-;2568:32;;2629:5;-1:-1:-1;;;;;2618:16:60;:7;-1:-1:-1;;;;;2618:16:60;;:51;;;;2662:7;-1:-1:-1;;;;;2638:31:60;:20;2650:7;2638:11;:20::i;:::-;-1:-1:-1;;;;;2638:31:60;;2618:51;:87;;;-1:-1:-1;;;;;;4508:25:38;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;2673:32:60;4388:162:38;11423:1233;11577:4;-1:-1:-1;;;;;11550:31:38;:23;11565:7;11550:14;:23::i;:::-;-1:-1:-1;;;;;11550:31:38;;11542:81;;;;-1:-1:-1;;;11542:81:38;;;;;;;:::i;:::-;-1:-1:-1;;;;;11641:16:38;;11633:65;;;;-1:-1:-1;;;11633:65:38;;22309:2:127;11633:65:38;;;22291:21:127;22348:2;22328:18;;;22321:30;22387:34;22367:18;;;22360:62;-1:-1:-1;;;22438:18:127;;;22431:34;22482:19;;11633:65:38;22107:400:127;11633:65:38;11709:42;11730:4;11736:2;11740:7;11749:1;11709:20;:42::i;:::-;11878:4;-1:-1:-1;;;;;11851:31:38;:23;11866:7;11851:14;:23::i;:::-;-1:-1:-1;;;;;11851:31:38;;11843:81;;;;-1:-1:-1;;;11843:81:38;;;;;;;:::i;:::-;11993:24;;;;:15;:24;;;;;;;;11986:31;;-1:-1:-1;;;;;;11986:31:38;;;;;;-1:-1:-1;;;;;12461:15:38;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12461:20:38;;;12495:13;;;;;;;;;:18;;11986:31;12495:18;;;12533:16;;;:7;:16;;;;;;:21;;;;;;;;;;12570:27;;12009:7;;12570:27;;;3538:336;3468:406;;:::o;1359:130:23:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:23;719:10:43;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;22714:2:127;1414:68:23;;;22696:21:127;;;22733:18;;;22726:30;22792:34;22772:18;;;22765:62;22844:18;;1414:68:23;22512:356:127;2433:187:23;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:23;;;-1:-1:-1;;;;;;2541:17:23;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;13075:307:38:-;13225:8;-1:-1:-1;;;;;13216:17:38;:5;-1:-1:-1;;;;;13216:17:38;;13208:55;;;;-1:-1:-1;;;13208:55:38;;23075:2:127;13208:55:38;;;23057:21:127;23114:2;23094:18;;;23087:30;23153:27;23133:18;;;23126:55;23198:18;;13208:55:38;22873:349:127;13208:55:38;-1:-1:-1;;;;;13273:25:38;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13273:46:38;;;;;;;;;;13334:41;;540::127;;;13334::38;;513:18:127;13334:41:38;;;;;;;13075:307;;;:::o;6424:305::-;6574:28;6584:4;6590:2;6594:7;6574:9;:28::i;:::-;6620:47;6643:4;6649:2;6653:7;6662:4;6620:22;:47::i;:::-;6612:110;;;;-1:-1:-1;;;6612:110:38;;;;;;;:::i;10266:255:60:-;10331:20;10353:15;10372:17;10379:9;10372:6;:17::i;:::-;10330:59;;;;10420:7;10407:9;:20;;10399:48;;;;-1:-1:-1;;;10399:48:60;;23848:2:127;10399:48:60;;;23830:21:127;23887:2;23867:18;;;23860:30;-1:-1:-1;;;23906:18:127;;;23899:45;23961:18;;10399:48:60;23646:339:127;10399:48:60;10461:11;;10457:57;;10474:40;-1:-1:-1;;;;;10474:31:60;;10506:7;10474:31;:40::i;10337:762:38:-;10396:13;10412:23;10427:7;10412:14;:23::i;:::-;10396:39;;10446:51;10467:5;10482:1;10486:7;10495:1;10446:20;:51::i;:::-;10607:23;10622:7;10607:14;:23::i;:::-;10675:24;;;;:15;:24;;;;;;;;10668:31;;-1:-1:-1;;;;;;10668:31:38;;;;;;-1:-1:-1;;;;;10915:16:38;;;;;:9;:16;;;;;:21;;-1:-1:-1;;10915:21:38;;;10963:16;;;:7;:16;;;;;;10956:23;;;;;;;10995:36;10599:31;;-1:-1:-1;10691:7:38;;10995:36;;10675:24;;10995:36;4169:153;;:::o;9091:920::-;-1:-1:-1;;;;;9170:16:38;;9162:61;;;;-1:-1:-1;;;9162:61:38;;24192:2:127;9162:61:38;;;24174:21:127;;;24211:18;;;24204:30;24270:34;24250:18;;;24243:62;24322:18;;9162:61:38;23990:356:127;9162:61:38;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;7344:31;9233:58;;;;-1:-1:-1;;;9233:58:38;;24553:2:127;9233:58:38;;;24535:21:127;24592:2;24572:18;;;24565:30;24631;24611:18;;;24604:58;24679:18;;9233:58:38;24351:352:127;9233:58:38;9302:48;9331:1;9335:2;9339:7;9348:1;9302:20;:48::i;:::-;7321:4;6930:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6930:16:38;7344:31;9437:58;;;;-1:-1:-1;;;9437:58:38;;24553:2:127;9437:58:38;;;24535:21:127;24592:2;24572:18;;;24565:30;24631;24611:18;;;24604:58;24679:18;;9437:58:38;24351:352:127;9437:58:38;-1:-1:-1;;;;;9837:13:38;;;;;;:9;:13;;;;;;;;:18;;9854:1;9837:18;;;9876:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;9876:21:38;;;;;9913:33;9884:7;;9837:13;;9913:33;;9837:13;;9913:33;4169:153;;:::o;15698:396::-;15882:1;15870:9;:13;15866:222;;;-1:-1:-1;;;;;15903:18:38;;;15899:85;;-1:-1:-1;;;;;15941:15:38;;;;;;:9;:15;;;;;:28;;15960:9;;15941:15;:28;;15960:9;;15941:28;:::i;:::-;;;;-1:-1:-1;;15899:85:38;-1:-1:-1;;;;;16001:16:38;;;15997:81;;-1:-1:-1;;;;;16037:13:38;;;;;;:9;:13;;;;;:26;;16054:9;;16037:13;:26;;16054:9;;16037:26;:::i;:::-;;;;-1:-1:-1;;15698:396:38;;;;:::o;14151:831::-;14300:4;-1:-1:-1;;;;;14320:13:38;;1465:19:42;:23;14316:660:38;;14355:71;;-1:-1:-1;;;14355:71:38;;-1:-1:-1;;;;;14355:36:38;;;;;:71;;719:10:43;;14406:4:38;;14412:7;;14421:4;;14355:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14355:71:38;;;;;;;;-1:-1:-1;;14355:71:38;;;;;;;;;;;;:::i;:::-;;;14351:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14593:6;:13;14610:1;14593:18;14589:321;;14635:60;;-1:-1:-1;;;14635:60:38;;;;;;;:::i;14589:321::-;14862:6;14856:13;14847:6;14843:2;14839:15;14832:38;14351:573;-1:-1:-1;;;;;;14476:51:38;-1:-1:-1;;;14476:51:38;;-1:-1:-1;14469:58:38;;14316:660;-1:-1:-1;14961:4:38;14954:11;;2412:312:42;2526:6;2501:21;:31;;2493:73;;;;-1:-1:-1;;;2493:73:42;;25791:2:127;2493:73:42;;;25773:21:127;25830:2;25810:18;;;25803:30;25869:31;25849:18;;;25842:59;25918:18;;2493:73:42;25589:353:127;2493:73:42;2578:12;2596:9;-1:-1:-1;;;;;2596:14:42;2618:6;2596:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2577:52;;;2647:7;2639:78;;;;-1:-1:-1;;;2639:78:42;;26359:2:127;2639:78:42;;;26341:21:127;26398:2;26378:18;;;26371:30;26437:34;26417:18;;;26410:62;26508:28;26488:18;;;26481:56;26554:19;;2639:78:42;26157:422:127;14:131;-1:-1:-1;;;;;;88:32:127;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;:::-;384:5;150:245;-1:-1:-1;;;150:245:127:o;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:127;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:127;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:127:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:127;;1348:180;-1:-1:-1;1348:180:127:o;1741:131::-;-1:-1:-1;;;;;1816:31:127;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:127:o;2197:383::-;2274:6;2282;2290;2343:2;2331:9;2322:7;2318:23;2314:32;2311:52;;;2359:1;2356;2349:12;2311:52;2395:9;2382:23;2372:33;;2455:2;2444:9;2440:18;2427:32;2468:31;2493:5;2468:31;:::i;:::-;2197:383;;2518:5;;-1:-1:-1;;;2570:2:127;2555:18;;;;2542:32;;2197:383::o;2767:456::-;2844:6;2852;2860;2913:2;2901:9;2892:7;2888:23;2884:32;2881:52;;;2929:1;2926;2919:12;2881:52;2968:9;2955:23;2987:31;3012:5;2987:31;:::i;:::-;3037:5;-1:-1:-1;3094:2:127;3079:18;;3066:32;3107:33;3066:32;3107:33;:::i;3228:315::-;3296:6;3304;3357:2;3345:9;3336:7;3332:23;3328:32;3325:52;;;3373:1;3370;3363:12;3325:52;3409:9;3396:23;3386:33;;3469:2;3458:9;3454:18;3441:32;3482:31;3507:5;3482:31;:::i;:::-;3532:5;3522:15;;;3228:315;;;;;:::o;3548:591::-;3618:6;3626;3679:2;3667:9;3658:7;3654:23;3650:32;3647:52;;;3695:1;3692;3685:12;3647:52;3735:9;3722:23;3764:18;3805:2;3797:6;3794:14;3791:34;;;3821:1;3818;3811:12;3791:34;3859:6;3848:9;3844:22;3834:32;;3904:7;3897:4;3893:2;3889:13;3885:27;3875:55;;3926:1;3923;3916:12;3875:55;3966:2;3953:16;3992:2;3984:6;3981:14;3978:34;;;4008:1;4005;3998:12;3978:34;4053:7;4048:2;4039:6;4035:2;4031:15;4027:24;4024:37;4021:57;;;4074:1;4071;4064:12;4021:57;4105:2;4097:11;;;;;4127:6;;-1:-1:-1;3548:591:127;;-1:-1:-1;;;;3548:591:127:o;4144:299::-;4327:6;4320:14;4313:22;4302:9;4295:41;4372:2;4367;4356:9;4352:18;4345:30;4276:4;4392:45;4433:2;4422:9;4418:18;4410:6;4392:45;:::i;4448:247::-;4507:6;4560:2;4548:9;4539:7;4535:23;4531:32;4528:52;;;4576:1;4573;4566:12;4528:52;4615:9;4602:23;4634:31;4659:5;4634:31;:::i;5408:416::-;5473:6;5481;5534:2;5522:9;5513:7;5509:23;5505:32;5502:52;;;5550:1;5547;5540:12;5502:52;5589:9;5576:23;5608:31;5633:5;5608:31;:::i;:::-;5658:5;-1:-1:-1;5715:2:127;5700:18;;5687:32;5757:15;;5750:23;5738:36;;5728:64;;5788:1;5785;5778:12;5829:127;5890:10;5885:3;5881:20;5878:1;5871:31;5921:4;5918:1;5911:15;5945:4;5942:1;5935:15;5961:275;6032:2;6026:9;6097:2;6078:13;;-1:-1:-1;;6074:27:127;6062:40;;6132:18;6117:34;;6153:22;;;6114:62;6111:88;;;6179:18;;:::i;:::-;6215:2;6208:22;5961:275;;-1:-1:-1;5961:275:127:o;6241:186::-;6289:4;6322:18;6314:6;6311:30;6308:56;;;6344:18;;:::i;:::-;-1:-1:-1;6410:2:127;6389:15;-1:-1:-1;;6385:29:127;6416:4;6381:40;;6241:186::o;6432:336::-;6496:5;6525:52;6541:35;6569:6;6541:35;:::i;:::-;6525:52;:::i;:::-;6516:61;;6600:6;6593:5;6586:21;6640:3;6631:6;6626:3;6622:16;6619:25;6616:45;;;6657:1;6654;6647:12;6616:45;6706:6;6701:3;6694:4;6687:5;6683:16;6670:43;6760:1;6753:4;6744:6;6737:5;6733:18;6729:29;6722:40;6432:336;;;;;:::o;6773:794::-;6868:6;6876;6884;6892;6945:3;6933:9;6924:7;6920:23;6916:33;6913:53;;;6962:1;6959;6952:12;6913:53;7001:9;6988:23;7020:31;7045:5;7020:31;:::i;:::-;7070:5;-1:-1:-1;7127:2:127;7112:18;;7099:32;7140:33;7099:32;7140:33;:::i;:::-;7192:7;-1:-1:-1;7246:2:127;7231:18;;7218:32;;-1:-1:-1;7301:2:127;7286:18;;7273:32;7328:18;7317:30;;7314:50;;;7360:1;7357;7350:12;7314:50;7383:22;;7436:4;7428:13;;7424:27;-1:-1:-1;7414:55:127;;7465:1;7462;7455:12;7414:55;7488:73;7553:7;7548:2;7535:16;7530:2;7526;7522:11;7488:73;:::i;:::-;7478:83;;;6773:794;;;;;;;:::o;7572:450::-;7641:6;7694:2;7682:9;7673:7;7669:23;7665:32;7662:52;;;7710:1;7707;7700:12;7662:52;7750:9;7737:23;7783:18;7775:6;7772:30;7769:50;;;7815:1;7812;7805:12;7769:50;7838:22;;7891:4;7883:13;;7879:27;-1:-1:-1;7869:55:127;;7920:1;7917;7910:12;7869:55;7943:73;8008:7;8003:2;7990:16;7985:2;7981;7977:11;7943:73;:::i;8027:248::-;8095:6;8103;8156:2;8144:9;8135:7;8131:23;8127:32;8124:52;;;8172:1;8169;8162:12;8124:52;-1:-1:-1;;8195:23:127;;;8265:2;8250:18;;;8237:32;;-1:-1:-1;8027:248:127:o;8462:388::-;8530:6;8538;8591:2;8579:9;8570:7;8566:23;8562:32;8559:52;;;8607:1;8604;8597:12;8559:52;8646:9;8633:23;8665:31;8690:5;8665:31;:::i;:::-;8715:5;-1:-1:-1;8772:2:127;8757:18;;8744:32;8785:33;8744:32;8785:33;:::i;8855:380::-;8934:1;8930:12;;;;8977;;;8998:61;;9052:4;9044:6;9040:17;9030:27;;8998:61;9105:2;9097:6;9094:14;9074:18;9071:38;9068:161;;9151:10;9146:3;9142:20;9139:1;9132:31;9186:4;9183:1;9176:15;9214:4;9211:1;9204:15;9068:161;;8855:380;;;:::o;10072:409::-;10274:2;10256:21;;;10313:2;10293:18;;;10286:30;10352:34;10347:2;10332:18;;10325:62;-1:-1:-1;;;10418:2:127;10403:18;;10396:43;10471:3;10456:19;;10072:409::o;10486:251::-;10556:6;10609:2;10597:9;10588:7;10584:23;10580:32;10577:52;;;10625:1;10622;10615:12;10577:52;10657:9;10651:16;10676:31;10701:5;10676:31;:::i;10742:331::-;10944:2;10926:21;;;10983:1;10963:18;;;10956:29;-1:-1:-1;;;11016:2:127;11001:18;;10994:38;11064:2;11049:18;;10742:331::o;11770:184::-;11840:6;11893:2;11881:9;11872:7;11868:23;11864:32;11861:52;;;11909:1;11906;11899:12;11861:52;-1:-1:-1;11932:16:127;;11770:184;-1:-1:-1;11770:184:127:o;11959:271::-;12142:6;12134;12129:3;12116:33;12098:3;12168:16;;12193:13;;;12168:16;11959:271;-1:-1:-1;11959:271:127:o;13266:446::-;13354:6;13362;13370;13423:2;13411:9;13402:7;13398:23;13394:32;13391:52;;;13439:1;13436;13429:12;13391:52;13471:9;13465:16;13490:31;13515:5;13490:31;:::i;:::-;13585:2;13570:18;;13564:25;13634:2;13619:18;;13613:25;13540:5;;-1:-1:-1;13564:25:127;-1:-1:-1;13647:33:127;13613:25;13647:33;:::i;:::-;13699:7;13689:17;;;13266:446;;;;;:::o;13717:127::-;13778:10;13773:3;13769:20;13766:1;13759:31;13809:4;13806:1;13799:15;13833:4;13830:1;13823:15;13849:168;13922:9;;;13953;;13970:15;;;13964:22;;13950:37;13940:71;;13991:18;;:::i;14022:125::-;14087:9;;;14108:10;;;14105:36;;;14121:18;;:::i;14152:338::-;14354:2;14336:21;;;14393:2;14373:18;;;14366:30;-1:-1:-1;;;14427:2:127;14412:18;;14405:44;14481:2;14466:18;;14152:338::o;14621:545::-;14723:2;14718:3;14715:11;14712:448;;;14759:1;14784:5;14780:2;14773:17;14829:4;14825:2;14815:19;14899:2;14887:10;14883:19;14880:1;14876:27;14870:4;14866:38;14935:4;14923:10;14920:20;14917:47;;;-1:-1:-1;14958:4:127;14917:47;15013:2;15008:3;15004:12;15001:1;14997:20;14991:4;14987:31;14977:41;;15068:82;15086:2;15079:5;15076:13;15068:82;;;15131:17;;;15112:1;15101:13;15068:82;;;15072:3;;;14621:545;;;:::o;15342:1352::-;15468:3;15462:10;15495:18;15487:6;15484:30;15481:56;;;15517:18;;:::i;:::-;15546:97;15636:6;15596:38;15628:4;15622:11;15596:38;:::i;:::-;15590:4;15546:97;:::i;:::-;15698:4;;15762:2;15751:14;;15779:1;15774:663;;;;16481:1;16498:6;16495:89;;;-1:-1:-1;16550:19:127;;;16544:26;16495:89;-1:-1:-1;;15299:1:127;15295:11;;;15291:24;15287:29;15277:40;15323:1;15319:11;;;15274:57;16597:81;;15744:944;;15774:663;14568:1;14561:14;;;14605:4;14592:18;;-1:-1:-1;;15810:20:127;;;15928:236;15942:7;15939:1;15936:14;15928:236;;;16031:19;;;16025:26;16010:42;;16123:27;;;;16091:1;16079:14;;;;15958:19;;15928:236;;;15932:3;16192:6;16183:7;16180:19;16177:201;;;16253:19;;;16247:26;-1:-1:-1;;16336:1:127;16332:14;;;16348:3;16328:24;16324:37;16320:42;16305:58;16290:74;;16177:201;-1:-1:-1;;;;;16424:1:127;16408:14;;;16404:22;16391:36;;-1:-1:-1;15342:1352:127:o;18775:648::-;18855:6;18908:2;18896:9;18887:7;18883:23;18879:32;18876:52;;;18924:1;18921;18914:12;18876:52;18957:9;18951:16;18990:18;18982:6;18979:30;18976:50;;;19022:1;19019;19012:12;18976:50;19045:22;;19098:4;19090:13;;19086:27;-1:-1:-1;19076:55:127;;19127:1;19124;19117:12;19076:55;19156:2;19150:9;19181:48;19197:31;19225:2;19197:31;:::i;19181:48::-;19252:2;19245:5;19238:17;19292:7;19287:2;19282;19278;19274:11;19270:20;19267:33;19264:53;;;19313:1;19310;19303:12;19264:53;19326:67;19390:2;19385;19378:5;19374:14;19369:2;19365;19361:11;19326:67;:::i;:::-;19412:5;18775:648;-1:-1:-1;;;;;18775:648:127:o;19428:1166::-;19650:6;19639:9;19632:25;19613:4;19676:2;19714;19709;19698:9;19694:18;19687:30;19737:1;19770:6;19764:13;19800:36;19826:9;19800:36;:::i;:::-;19872:6;19867:2;19856:9;19852:18;19845:34;19898:3;19920:1;19952:2;19941:9;19937:18;19969:1;19964:158;;;;20136:1;20131:354;;;;19930:555;;19964:158;-1:-1:-1;;20012:24:127;;19992:18;;;19985:52;20090:14;;20083:22;20080:1;20076:30;20061:46;;20057:55;;;-1:-1:-1;19964:158:127;;20131:354;20162:6;20159:1;20152:17;20210:2;20207:1;20197:16;20235:1;20249:180;20263:6;20260:1;20257:13;20249:180;;;20356:14;;20332:17;;;20328:26;;20321:50;20399:16;;;;20278:10;;20249:180;;;20453:17;;20449:26;;;-1:-1:-1;;19930:555:127;;;;;;20530:9;20525:3;20521:19;20516:2;20505:9;20501:18;20494:47;20558:30;20584:3;20576:6;20558:30;:::i;:::-;20550:38;19428:1166;-1:-1:-1;;;;;;;19428:1166:127:o;21701:401::-;21903:2;21885:21;;;21942:2;21922:18;;;21915:30;21981:34;21976:2;21961:18;;21954:62;-1:-1:-1;;;22047:2:127;22032:18;;22025:35;22092:3;22077:19;;21701:401::o;23227:414::-;23429:2;23411:21;;;23468:2;23448:18;;;23441:30;23507:34;23502:2;23487:18;;23480:62;-1:-1:-1;;;23573:2:127;23558:18;;23551:48;23631:3;23616:19;;23227:414::o;24708:128::-;24775:9;;;24796:11;;;24793:37;;;24810:18;;:::i;24841:489::-;-1:-1:-1;;;;;25110:15:127;;;25092:34;;25162:15;;25157:2;25142:18;;25135:43;25209:2;25194:18;;25187:34;;;25257:3;25252:2;25237:18;;25230:31;;;25035:4;;25278:46;;25304:19;;25296:6;25278:46;:::i;:::-;25270:54;24841:489;-1:-1:-1;;;;;;24841:489:127:o;25335:249::-;25404:6;25457:2;25445:9;25436:7;25432:23;25428:32;25425:52;;;25473:1;25470;25463:12;25425:52;25505:9;25499:16;25524:30;25548:5;25524:30;:::i","linkReferences":{}},"methodIdentifiers":{"GRACE_PERIOD()":"c1a287e2","TOKEN_URI_SELECTOR()":"72b7692b","addController(address)":"a7fc7a07","approve(address,uint256)":"095ea7b3","available(uint256)":"96e494e8","balanceOf(address)":"70a08231","baseNode()":"ddf7fcb0","controllers(address)":"da8c229e","crs()":"8a591369","expiries(uint256)":"b9cce328","gasFee(uint256)":"8a59c83e","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","nameExpires(uint256)":"d6e4fa86","names(uint256)":"4622ab03","owner()":"8da5cb5b","ownerOf(uint256)":"6352211e","reclaim(uint256,address)":"28ed4f6c","register(uint256,address,uint256)":"fca247ac","registerOnly(uint256,address,uint256)":"0e297b45","removeController(address)":"f6a74ed7","renew(uint256,uint256)":"c475abff","renounceOwnership()":"715018a6","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","saveName(string)":"bc420523","setApprovalForAll(address,bool)":"a22cb465","setBasenodeResolverSettings(bytes)":"302c9650","setResolver(address)":"4e543b26","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ICRS\",\"name\":\"_crs\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_baseNode\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"ControllerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"ControllerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"NameMigrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"NameRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expires\",\"type\":\"uint256\"}],\"name\":\"NameRenewed\",\"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\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"GRACE_PERIOD\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_URI_SELECTOR\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"addController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"available\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseNode\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"controllers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"crs\",\"outputs\":[{\"internalType\":\"contract ICRS\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"expiries\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"gasFee\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"nameExpires\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"names\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"reclaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"register\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"duration\",\"type\":\"uint256\"}],\"name\":\"registerOnly\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"}],\"name\":\"removeController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_duration\",\"type\":\"uint256\"}],\"name\":\"renew\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"saveName\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_callData\",\"type\":\"bytes\"}],\"name\":\"setBasenodeResolverSettings\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_resolver\",\"type\":\"address\"}],\"name\":\"setResolver\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Metadata generation is delegated to updatable proxy contract.\",\"kind\":\"dev\",\"methods\":{\"addController(address)\":{\"details\":\"Authorises a controller, who can register and renew records.\",\"params\":{\"_controller\":\"Address of controller smart contract which can register NFTs.\"}},\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"available(uint256)\":{\"details\":\"Returns true if the specified name is available for registration.\",\"returns\":{\"_0\":\"Not available if it's registered here or in its grace period.\"}},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"gasFee(uint256)\":{\"details\":\"Fetch gas fee from resolver of a root node.\",\"params\":{\"_duration\":\"duration in seconds for lease or extension.\"},\"returns\":{\"_0\":\"beneficiary address.\",\"_1\":\"fee in gas token for registration or extenting lease.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"nameExpires(uint256)\":{\"details\":\"Returns the expiration timestamp of the specified id.\",\"returns\":{\"_0\":\"UNIX timestamp for expiration date.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerOf(uint256)\":{\"details\":\"Gets the owner of the specified token ID. Names become unowned      when their registration expires.\",\"params\":{\"tokenId\":\"uint256 ID of the token to query the owner of\"},\"returns\":{\"_0\":\"address currently marked as the owner of the given token ID\"}},\"reclaim(uint256,address)\":{\"details\":\"Reclaim ownership of a name in CRS, if you own it in the registrar.\",\"params\":{\"_id\":\"The token ID (keccak256 of the label).\",\"_owner\":\"New owner address.\"}},\"register(uint256,address,uint256)\":{\"details\":\"Register a name.\",\"params\":{\"duration\":\"Duration in seconds for the registration.\",\"id\":\"The token ID (keccak256 of the label).\",\"owner\":\"The address that should own the registration.\"},\"returns\":{\"_0\":\"UNIX timestamp for a new expiration date.\"}},\"registerOnly(uint256,address,uint256)\":{\"details\":\"Register a name, without modifying the registry.\",\"params\":{\"duration\":\"Duration in seconds for the registration.\",\"id\":\"The token ID (keccak256 of the label).\",\"owner\":\"The address that should own the registration.\"},\"returns\":{\"_0\":\"UNIX timestamp for a new expiration date.\"}},\"removeController(address)\":{\"details\":\"Revoke controller permission for an address.\",\"params\":{\"_controller\":\"Address of controller smart contract which can register NFTs.\"}},\"renew(uint256,uint256)\":{\"details\":\"Extend the lease for CRS.\",\"params\":{\"_duration\":\"Duration in seconds for the registration.\",\"_id\":\"The token ID (keccak256 of the label).\"},\"returns\":{\"_0\":\"UNIX timestamp for a new expiration date.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"saveName(string)\":{\"details\":\"Save name on-chain for metadata storage.\",\"params\":{\"_name\":\"UTF8 encoded string of domain name.\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setBasenodeResolverSettings(bytes)\":{\"details\":\"Low-level call by controller to resolver of the baseNode.\",\"params\":{\"_callData\":\"encoded bytestring of the call e.g. `abi.encodeWithSignature(\\\"myFunction(uint,address)\\\", 10, msg.sender)`.\"},\"returns\":{\"_0\":\"execution result tuple.\"}},\"setResolver(address)\":{\"details\":\"Set the resolver for the TLD this registrar manages.\",\"params\":{\"_resolver\":\"Address of resolver smart contract for all NFTs.\"}},\"supportsInterface(bytes4)\":{\"details\":\"Reclaim ownership of a name in CRS, if you own it in the registrar.\",\"params\":{\"_interfaceID\":\"Bytes4 from keccak256 of interface signature.\"},\"returns\":{\"_0\":\"true if interface is supported.\"}},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"NFT metadata.\",\"params\":{\"_id\":\"The token ID (keccak256 of the label).\"},\"returns\":{\"_0\":\"Metadata URI or base64 encoded metadata.\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"baseNode()\":{\"notice\":\"The namehash of the TLD this registrar owns (eg, .eth)\"},\"controllers(address)\":{\"notice\":\"A map of addresses that are authorised to register and renew names.\"},\"crs()\":{\"notice\":\"The CRS registry\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/nft/AvatarNFTV1.sol\":\"AvatarNFTV1\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@le7el/=node_modules/@le7el/\",\":@le7el/generative_art/=node_modules/@le7el/generative_art/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":murky/=lib/murky/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/src/\",\":src/=src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]},\"node_modules/@le7el/web3_crs/contracts/nft/BaseNFT.sol\":{\"keccak256\":\"0xcdc5dcc29d9fbefa470255a9d2d8fc569230c397d220542c7a1c2d5dfe4badab\",\"license\":\"BSD-2-Clause\",\"urls\":[\"bzz-raw://1497e47390d40ec38a04edea4ec83841d488824eb0edb17f18cf1a5a4c2d616c\",\"dweb:/ipfs/QmP82Ce4JnzchuavULBM3w5c6iv5Zhyjm4xnoiAJJieppA\"]},\"node_modules/@le7el/web3_crs/contracts/nft/IBaseNFT.sol\":{\"keccak256\":\"0x62a6fc034212ce095d9017050b3be85f24d0b73af2767c4da011b320e2f9664b\",\"license\":\"BSD-2-Clause\",\"urls\":[\"bzz-raw://d346c9e93343a0aaf5bbce7e5c63922d0d2f273d6aed89dd32a75edad424b857\",\"dweb:/ipfs/QmXMPBgueZTsdevxQ2Pb4gCq5wga1qwYiZB6S4bYRkRft8\"]},\"node_modules/@le7el/web3_crs/contracts/registry/ICRS.sol\":{\"keccak256\":\"0xd41df387a0c955997dd3463d64ae04236b26154fc089804367a113b9d518133f\",\"license\":\"BSD-2-Clause\",\"urls\":[\"bzz-raw://bc06dd67578272711b4523981ff2f509a6197030061e6e96188a64fa30753f19\",\"dweb:/ipfs/QmaZGRBNcoWDdKQW7v4Hzrgv76udJP8o9c45r3tuor82f4\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/profile/IProxyConfigResolver.sol\":{\"keccak256\":\"0x000a8ba9b4935986345652397a131cc9850ecab99aa8ab4ce727fd7c96ba7ed9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a00a97b34241842f4c8284f540629fabd96172f9227343455cb999278f58166d\",\"dweb:/ipfs/QmQjS4fAr8qX8Hs1Q9A5u6onnSZd9jis5rhwMa2P9frDdz\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/profile/IRoyaltiesResolver.sol\":{\"keccak256\":\"0x3ca0bf4a6c7e39ad35ed5ade409d69d0661a24f5442c0d4fdee17114df434b44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f55574c8324c5d2a3a0d97c5e4c871e4456745ddd00d4c63d1fd6c717fde52\",\"dweb:/ipfs/QmSxuEwwZGjWW6QNnHt2N54AigaBtVLaV32wtnWTnMzTyz\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/profile/ITextResolver.sol\":{\"keccak256\":\"0xe3555c104cb91934d8b2703a2ac9df51ad4b2d4c9eec4a8922806faa64e8b856\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b807b210cb6c5515d35a3e789de4468dcabd4eae394ffe10dd2bf8bd10278ce0\",\"dweb:/ipfs/QmSAKxaNdwqqVjTSTKad4vt8gJHG7WsseDecao1HhgJ27R\"]},\"node_modules/@le7el/web3_crs/contracts/resolver/proxies/ITokenURIProxy.sol\":{\"keccak256\":\"0x08961d1c4ea1fbe768a34c0594bf31c6bf1d989eb88ce99c96009421d7694099\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://de29365412b7eb3d69316ee8b7dacc7bb4af0f171e87679fbb40d8e647fbba87\",\"dweb:/ipfs/QmZNmB26VmFKgQS9YkVfkD2AHemaRWBRiusiDMSHKzJxtm\"]},\"src/nft/AvatarNFTV1.sol\":{\"keccak256\":\"0x9d5d35d76da0a1f9774a30c345fdefa308e24347fdd317cbbbf72bedcf50c1c8\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://3720913b271c876bb590ddae689f05cf827116ddb3ac1b9fa9f0228e128b1764\",\"dweb:/ipfs/QmXmd1QG93HJ3RZFYE8oL2xVa6HhwfBw1ue5eQ52ZGP7bj\"]},\"src/resolver/profile/ILevelResolver.sol\":{\"keccak256\":\"0x36c3a092dc58dac4963db5c651e23ee270c1ba4bcf21fc29ff9a819014d41c01\",\"license\":\"MPL-2.0\",\"urls\":[\"bzz-raw://a3c4c20fd098754f522554ac5237e37d171e5f471451add69b41d4fa72d576c6\",\"dweb:/ipfs/QmdEfbaaPEXLKY8RYK7bKtMPLkiyk4pFjtCiABWHhv2aeX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.17+commit.8df45f5f"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ICRS","name":"_crs","type":"address"},{"internalType":"bytes32","name":"_baseNode","type":"bytes32"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"controller","type":"address","indexed":true}],"type":"event","name":"ControllerAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"controller","type":"address","indexed":true}],"type":"event","name":"ControllerRemoved","anonymous":false},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"expires","type":"uint256","indexed":false}],"type":"event","name":"NameMigrated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"expires","type":"uint256","indexed":false}],"type":"event","name":"NameRegistered","anonymous":false},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256","indexed":true},{"internalType":"uint256","name":"expires","type":"uint256","indexed":false}],"type":"event","name":"NameRenewed","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_URI_SELECTOR","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addController"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"available","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseNode","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"controllers","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"crs","outputs":[{"internalType":"contract ICRS","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"expiries","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_duration","type":"uint256"}],"stateMutability":"view","type":"function","name":"gasFee","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"stateMutability":"view","type":"function","name":"nameExpires","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"names","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"reclaim"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"register","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"duration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"registerOnly","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeController"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_duration","type":"uint256"}],"stateMutability":"payable","type":"function","name":"renew","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"saveName"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes","name":"_callData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"setBasenodeResolverSettings","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"address","name":"_resolver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setResolver"},{"inputs":[{"internalType":"bytes4","name":"_interfaceID","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"addController(address)":{"details":"Authorises a controller, who can register and renew records.","params":{"_controller":"Address of controller smart contract which can register NFTs."}},"approve(address,uint256)":{"details":"See {IERC721-approve}."},"available(uint256)":{"details":"Returns true if the specified name is available for registration.","returns":{"_0":"Not available if it's registered here or in its grace period."}},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"gasFee(uint256)":{"details":"Fetch gas fee from resolver of a root node.","params":{"_duration":"duration in seconds for lease or extension."},"returns":{"_0":"beneficiary address.","_1":"fee in gas token for registration or extenting lease."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"nameExpires(uint256)":{"details":"Returns the expiration timestamp of the specified id.","returns":{"_0":"UNIX timestamp for expiration date."}},"owner()":{"details":"Returns the address of the current owner."},"ownerOf(uint256)":{"details":"Gets the owner of the specified token ID. Names become unowned      when their registration expires.","params":{"tokenId":"uint256 ID of the token to query the owner of"},"returns":{"_0":"address currently marked as the owner of the given token ID"}},"reclaim(uint256,address)":{"details":"Reclaim ownership of a name in CRS, if you own it in the registrar.","params":{"_id":"The token ID (keccak256 of the label).","_owner":"New owner address."}},"register(uint256,address,uint256)":{"details":"Register a name.","params":{"duration":"Duration in seconds for the registration.","id":"The token ID (keccak256 of the label).","owner":"The address that should own the registration."},"returns":{"_0":"UNIX timestamp for a new expiration date."}},"registerOnly(uint256,address,uint256)":{"details":"Register a name, without modifying the registry.","params":{"duration":"Duration in seconds for the registration.","id":"The token ID (keccak256 of the label).","owner":"The address that should own the registration."},"returns":{"_0":"UNIX timestamp for a new expiration date."}},"removeController(address)":{"details":"Revoke controller permission for an address.","params":{"_controller":"Address of controller smart contract which can register NFTs."}},"renew(uint256,uint256)":{"details":"Extend the lease for CRS.","params":{"_duration":"Duration in seconds for the registration.","_id":"The token ID (keccak256 of the label)."},"returns":{"_0":"UNIX timestamp for a new expiration date."}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"saveName(string)":{"details":"Save name on-chain for metadata storage.","params":{"_name":"UTF8 encoded string of domain name."}},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"setBasenodeResolverSettings(bytes)":{"details":"Low-level call by controller to resolver of the baseNode.","params":{"_callData":"encoded bytestring of the call e.g. `abi.encodeWithSignature(\"myFunction(uint,address)\", 10, msg.sender)`."},"returns":{"_0":"execution result tuple."}},"setResolver(address)":{"details":"Set the resolver for the TLD this registrar manages.","params":{"_resolver":"Address of resolver smart contract for all NFTs."}},"supportsInterface(bytes4)":{"details":"Reclaim ownership of a name in CRS, if you own it in the registrar.","params":{"_interfaceID":"Bytes4 from keccak256 of interface signature."},"returns":{"_0":"true if interface is supported."}},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenURI(uint256)":{"details":"NFT metadata.","params":{"_id":"The token ID (keccak256 of the label)."},"returns":{"_0":"Metadata URI or base64 encoded metadata."}},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"baseNode()":{"notice":"The namehash of the TLD this registrar owns (eg, .eth)"},"controllers(address)":{"notice":"A map of addresses that are authorised to register and renew names."},"crs()":{"notice":"The CRS registry"}},"version":1}},"settings":{"remappings":["@le7el/=node_modules/@le7el/","@le7el/generative_art/=node_modules/@le7el/generative_art/","@openzeppelin/=lib/openzeppelin-contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","forge-std/=lib/forge-std/src/","murky/=lib/murky/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solmate/=lib/solmate/src/","src/=src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/nft/AvatarNFTV1.sol":"AvatarNFTV1"},"libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673","urls":["bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2","dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b","urls":["bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c","dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68","urls":["bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56","dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9","urls":["bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146","dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1","urls":["bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269","dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a","urls":["bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634","dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6","urls":["bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b","dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/nft/BaseNFT.sol":{"keccak256":"0xcdc5dcc29d9fbefa470255a9d2d8fc569230c397d220542c7a1c2d5dfe4badab","urls":["bzz-raw://1497e47390d40ec38a04edea4ec83841d488824eb0edb17f18cf1a5a4c2d616c","dweb:/ipfs/QmP82Ce4JnzchuavULBM3w5c6iv5Zhyjm4xnoiAJJieppA"],"license":"BSD-2-Clause"},"node_modules/@le7el/web3_crs/contracts/nft/IBaseNFT.sol":{"keccak256":"0x62a6fc034212ce095d9017050b3be85f24d0b73af2767c4da011b320e2f9664b","urls":["bzz-raw://d346c9e93343a0aaf5bbce7e5c63922d0d2f273d6aed89dd32a75edad424b857","dweb:/ipfs/QmXMPBgueZTsdevxQ2Pb4gCq5wga1qwYiZB6S4bYRkRft8"],"license":"BSD-2-Clause"},"node_modules/@le7el/web3_crs/contracts/registry/ICRS.sol":{"keccak256":"0xd41df387a0c955997dd3463d64ae04236b26154fc089804367a113b9d518133f","urls":["bzz-raw://bc06dd67578272711b4523981ff2f509a6197030061e6e96188a64fa30753f19","dweb:/ipfs/QmaZGRBNcoWDdKQW7v4Hzrgv76udJP8o9c45r3tuor82f4"],"license":"BSD-2-Clause"},"node_modules/@le7el/web3_crs/contracts/resolver/profile/IProxyConfigResolver.sol":{"keccak256":"0x000a8ba9b4935986345652397a131cc9850ecab99aa8ab4ce727fd7c96ba7ed9","urls":["bzz-raw://a00a97b34241842f4c8284f540629fabd96172f9227343455cb999278f58166d","dweb:/ipfs/QmQjS4fAr8qX8Hs1Q9A5u6onnSZd9jis5rhwMa2P9frDdz"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/resolver/profile/IRoyaltiesResolver.sol":{"keccak256":"0x3ca0bf4a6c7e39ad35ed5ade409d69d0661a24f5442c0d4fdee17114df434b44","urls":["bzz-raw://75f55574c8324c5d2a3a0d97c5e4c871e4456745ddd00d4c63d1fd6c717fde52","dweb:/ipfs/QmSxuEwwZGjWW6QNnHt2N54AigaBtVLaV32wtnWTnMzTyz"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/resolver/profile/ITextResolver.sol":{"keccak256":"0xe3555c104cb91934d8b2703a2ac9df51ad4b2d4c9eec4a8922806faa64e8b856","urls":["bzz-raw://b807b210cb6c5515d35a3e789de4468dcabd4eae394ffe10dd2bf8bd10278ce0","dweb:/ipfs/QmSAKxaNdwqqVjTSTKad4vt8gJHG7WsseDecao1HhgJ27R"],"license":"MIT"},"node_modules/@le7el/web3_crs/contracts/resolver/proxies/ITokenURIProxy.sol":{"keccak256":"0x08961d1c4ea1fbe768a34c0594bf31c6bf1d989eb88ce99c96009421d7694099","urls":["bzz-raw://de29365412b7eb3d69316ee8b7dacc7bb4af0f171e87679fbb40d8e647fbba87","dweb:/ipfs/QmZNmB26VmFKgQS9YkVfkD2AHemaRWBRiusiDMSHKzJxtm"],"license":"MIT"},"src/nft/AvatarNFTV1.sol":{"keccak256":"0x9d5d35d76da0a1f9774a30c345fdefa308e24347fdd317cbbbf72bedcf50c1c8","urls":["bzz-raw://3720913b271c876bb590ddae689f05cf827116ddb3ac1b9fa9f0228e128b1764","dweb:/ipfs/QmXmd1QG93HJ3RZFYE8oL2xVa6HhwfBw1ue5eQ52ZGP7bj"],"license":"MPL-2.0"},"src/resolver/profile/ILevelResolver.sol":{"keccak256":"0x36c3a092dc58dac4963db5c651e23ee270c1ba4bcf21fc29ff9a819014d41c01","urls":["bzz-raw://a3c4c20fd098754f522554ac5237e37d171e5f471451add69b41d4fa72d576c6","dweb:/ipfs/QmdEfbaaPEXLKY8RYK7bKtMPLkiyk4pFjtCiABWHhv2aeX"],"license":"MPL-2.0"}},"version":1},"ast":{"absolutePath":"src/nft/AvatarNFTV1.sol","id":60038,"exportedSymbols":{"Address":[49652],"AvatarNFTV1":[60037],"BaseNFT":[54986],"Context":[49674],"ERC165":[49873],"ERC721":[49161],"IBaseNFT":[55121],"ICRS":[55685],"IERC165":[49885],"IERC721":[49277],"IERC721Metadata":[49322],"IERC721Receiver":[49295],"ILevelResolver":[61071],"IProxyConfigResolver":[56590],"IRoyaltiesResolver":[56640],"ITextResolver":[56661],"ITokenURIProxy":[57589],"Math":[50750],"Ownable":[45526],"Strings":[49849]},"nodeType":"SourceUnit","src":"36:1282:110","nodes":[{"id":59920,"nodeType":"PragmaDirective","src":"36:24:110","nodes":[],"literals":["solidity","^","0.8",".17"]},{"id":59921,"nodeType":"ImportDirective","src":"62:51:110","nodes":[],"absolutePath":"node_modules/@le7el/web3_crs/contracts/nft/BaseNFT.sol","file":"@le7el/web3_crs/contracts/nft/BaseNFT.sol","nameLocation":"-1:-1:-1","scope":60038,"sourceUnit":54987,"symbolAliases":[],"unitAlias":""},{"id":59922,"nodeType":"ImportDirective","src":"114:70:110","nodes":[],"absolutePath":"node_modules/@le7el/web3_crs/contracts/resolver/profile/ITextResolver.sol","file":"@le7el/web3_crs/contracts/resolver/profile/ITextResolver.sol","nameLocation":"-1:-1:-1","scope":60038,"sourceUnit":56662,"symbolAliases":[],"unitAlias":""},{"id":59923,"nodeType":"ImportDirective","src":"185:48:110","nodes":[],"absolutePath":"src/resolver/profile/ILevelResolver.sol","file":"../resolver/profile/ILevelResolver.sol","nameLocation":"-1:-1:-1","scope":60038,"sourceUnit":61072,"symbolAliases":[],"unitAlias":""},{"id":60037,"nodeType":"ContractDefinition","src":"314:1004:110","nodes":[{"id":59947,"nodeType":"FunctionDefinition","src":"352:135:110","nodes":[],"body":{"id":59946,"nodeType":"Block","src":"430:57:110","nodes":[],"statements":[{"expression":{"id":59940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59938,"name":"crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55032,"src":"440:3:110","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59939,"name":"_crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59929,"src":"446:4:110","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"src":"440:10:110","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"id":59941,"nodeType":"ExpressionStatement","src":"440:10:110"},{"expression":{"id":59944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59942,"name":"baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55035,"src":"460:8:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":59943,"name":"_baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59931,"src":"471:9:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"460:20:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":59945,"nodeType":"ExpressionStatement","src":"460:20:110"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4c4537454c20417661746172207631","id":59934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"401:17:110","typeDescriptions":{"typeIdentifier":"t_stringliteral_c1fd0ff93aef2a208483137ebeb3081faaff1693affc9a706a82c63c60e549df","typeString":"literal_string \"LE7EL Avatar v1\""},"value":"LE7EL Avatar v1"},{"hexValue":"415641544152","id":59935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"420:8:110","typeDescriptions":{"typeIdentifier":"t_stringliteral_4270bfca07279b2d8717bab7cefb7943a69c398f45151b67b5ad61e75c144e59","typeString":"literal_string \"AVATAR\""},"value":"AVATAR"}],"id":59936,"kind":"baseConstructorSpecifier","modifierName":{"id":59933,"name":"ERC721","nameLocations":["394:6:110"],"nodeType":"IdentifierPath","referencedDeclaration":49161,"src":"394:6:110"},"nodeType":"ModifierInvocation","src":"394:35:110"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":59932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59929,"mutability":"mutable","name":"_crs","nameLocation":"369:4:110","nodeType":"VariableDeclaration","scope":59947,"src":"364:9:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"},"typeName":{"id":59928,"nodeType":"UserDefinedTypeName","pathNode":{"id":59927,"name":"ICRS","nameLocations":["364:4:110"],"nodeType":"IdentifierPath","referencedDeclaration":55685,"src":"364:4:110"},"referencedDeclaration":55685,"src":"364:4:110","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"visibility":"internal"},{"constant":false,"id":59931,"mutability":"mutable","name":"_baseNode","nameLocation":"383:9:110","nodeType":"VariableDeclaration","scope":59947,"src":"375:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59930,"name":"bytes32","nodeType":"ElementaryTypeName","src":"375:7:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"363:30:110"},"returnParameters":{"id":59937,"nodeType":"ParameterList","parameters":[],"src":"430:0:110"},"scope":60037,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60036,"nodeType":"FunctionDefinition","src":"648:668:110","nodes":[],"body":{"id":60035,"nodeType":"Block","src":"733:583:110","nodes":[],"statements":[{"assignments":[59958],"declarations":[{"constant":false,"id":59958,"mutability":"mutable","name":"_baseNode","nameLocation":"751:9:110","nodeType":"VariableDeclaration","scope":60035,"src":"743:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"743:7:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59960,"initialValue":{"id":59959,"name":"baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55035,"src":"763:8:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"743:28:110"},{"assignments":[59963],"declarations":[{"constant":false,"id":59963,"mutability":"mutable","name":"_crs","nameLocation":"786:4:110","nodeType":"VariableDeclaration","scope":60035,"src":"781:9:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"},"typeName":{"id":59962,"nodeType":"UserDefinedTypeName","pathNode":{"id":59961,"name":"ICRS","nameLocations":["781:4:110"],"nodeType":"IdentifierPath","referencedDeclaration":55685,"src":"781:4:110"},"referencedDeclaration":55685,"src":"781:4:110","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"visibility":"internal"}],"id":59965,"initialValue":{"id":59964,"name":"crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55032,"src":"793:3:110","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"nodeType":"VariableDeclarationStatement","src":"781:15:110"},{"assignments":[59967],"declarations":[{"constant":false,"id":59967,"mutability":"mutable","name":"_proxy","nameLocation":"814:6:110","nodeType":"VariableDeclaration","scope":60035,"src":"806:14:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59966,"name":"address","nodeType":"ElementaryTypeName","src":"806:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":59982,"initialValue":{"arguments":[{"id":59975,"name":"_baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59958,"src":"882:9:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":59978,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"901:4:110","typeDescriptions":{"typeIdentifier":"t_contract$_AvatarNFTV1_$60037","typeString":"contract AvatarNFTV1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AvatarNFTV1_$60037","typeString":"contract AvatarNFTV1"}],"id":59977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"893:7:110","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59976,"name":"address","nodeType":"ElementaryTypeName","src":"893:7:110","typeDescriptions":{}}},"id":59979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"893:13:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59980,"name":"TOKEN_URI_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54316,"src":"908:18:110","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"arguments":[{"id":59971,"name":"_baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59958,"src":"858:9:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59969,"name":"_crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59963,"src":"844:4:110","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"id":59970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"849:8:110","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":55661,"src":"844:13:110","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":59972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"844:24:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59968,"name":"IProxyConfigResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56590,"src":"823:20:110","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProxyConfigResolver_$56590_$","typeString":"type(contract IProxyConfigResolver)"}},"id":59973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"823:46:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IProxyConfigResolver_$56590","typeString":"contract IProxyConfigResolver"}},"id":59974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"870:11:110","memberName":"proxyConfig","nodeType":"MemberAccess","referencedDeclaration":56589,"src":"823:58:110","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_bytes4_$returns$_t_address_$","typeString":"function (bytes32,address,bytes4) view external returns (address)"}},"id":59981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"823:104:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"806:121:110"},{"assignments":[59984],"declarations":[{"constant":false,"id":59984,"mutability":"mutable","name":"_nodehash","nameLocation":"945:9:110","nodeType":"VariableDeclaration","scope":60035,"src":"937:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59983,"name":"bytes32","nodeType":"ElementaryTypeName","src":"937:7:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59995,"initialValue":{"arguments":[{"arguments":[{"id":59988,"name":"_baseNode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59958,"src":"984:9:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":59991,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59950,"src":"1003:3:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"995:7:110","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":59989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"995:7:110","typeDescriptions":{}}},"id":59992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"995:12:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59986,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"967:3:110","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"971:12:110","memberName":"encodePacked","nodeType":"MemberAccess","src":"967:16:110","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"967:41:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59985,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"957:9:110","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":59994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"957:52:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"937:72:110"},{"assignments":[59997],"declarations":[{"constant":false,"id":59997,"mutability":"mutable","name":"_customAvatar","nameLocation":"1042:13:110","nodeType":"VariableDeclaration","scope":60035,"src":"1028:27:110","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59996,"name":"string","nodeType":"ElementaryTypeName","src":"1028:6:110","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":59999,"initialValue":{"hexValue":"","id":59998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1058:2:110","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"nodeType":"VariableDeclarationStatement","src":"1028:32:110"},{"assignments":[60001],"declarations":[{"constant":false,"id":60001,"mutability":"mutable","name":"_resolver","nameLocation":"1078:9:110","nodeType":"VariableDeclaration","scope":60035,"src":"1070:17:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60000,"name":"address","nodeType":"ElementaryTypeName","src":"1070:7:110","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":60006,"initialValue":{"arguments":[{"id":60004,"name":"_nodehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59984,"src":"1104:9:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60002,"name":"_crs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59963,"src":"1090:4:110","typeDescriptions":{"typeIdentifier":"t_contract$_ICRS_$55685","typeString":"contract ICRS"}},"id":60003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1095:8:110","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":55661,"src":"1090:13:110","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":60005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1090:24:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1070:44:110"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":60012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60007,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60001,"src":"1128:9:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":60010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1149:1:110","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1141:7:110","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60008,"name":"address","nodeType":"ElementaryTypeName","src":"1141:7:110","typeDescriptions":{}}},"id":60011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1141:10:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1128:23:110","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60023,"nodeType":"IfStatement","src":"1124:105:110","trueBody":{"expression":{"id":60021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60013,"name":"_customAvatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59997,"src":"1153:13:110","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60018,"name":"_nodehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59984,"src":"1199:9:110","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"4c374c5f4156415441525f494d414745","id":60019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1210:18:110","typeDescriptions":{"typeIdentifier":"t_stringliteral_43e04cd65a811570d6f6a07e1a06955acefe4b3af4e7f3964926561144cc5015","typeString":"literal_string \"L7L_AVATAR_IMAGE\""},"value":"L7L_AVATAR_IMAGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_stringliteral_43e04cd65a811570d6f6a07e1a06955acefe4b3af4e7f3964926561144cc5015","typeString":"literal_string \"L7L_AVATAR_IMAGE\""}],"expression":{"arguments":[{"id":60015,"name":"_resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60001,"src":"1183:9:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60014,"name":"ITextResolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56661,"src":"1169:13:110","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITextResolver_$56661_$","typeString":"type(contract ITextResolver)"}},"id":60016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1169:24:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITextResolver_$56661","typeString":"contract ITextResolver"}},"id":60017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1194:4:110","memberName":"text","nodeType":"MemberAccess","referencedDeclaration":56660,"src":"1169:29:110","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes32,string memory) view external returns (string memory)"}},"id":60020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1169:60:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1153:76:110","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":60022,"nodeType":"ExpressionStatement","src":"1153:76:110"}},{"expression":{"arguments":[{"id":60028,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59950,"src":"1278:3:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":60029,"name":"names","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54308,"src":"1283:5:110","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_string_storage_$","typeString":"mapping(uint256 => string storage ref)"}},"id":60031,"indexExpression":{"id":60030,"name":"_id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59950,"src":"1289:3:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1283:10:110","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"id":60032,"name":"_customAvatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59997,"src":"1295:13:110","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"arguments":[{"id":60025,"name":"_proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59967,"src":"1261:6:110","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60024,"name":"ITokenURIProxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57589,"src":"1246:14:110","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITokenURIProxy_$57589_$","typeString":"type(contract ITokenURIProxy)"}},"id":60026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1246:22:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITokenURIProxy_$57589","typeString":"contract ITokenURIProxy"}},"id":60027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1269:8:110","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":57588,"src":"1246:31:110","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,string memory,string memory) view external returns (string memory)"}},"id":60033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1246:63:110","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":59956,"id":60034,"nodeType":"Return","src":"1239:70:110"}]},"baseFunctions":[54893],"documentation":{"id":59948,"nodeType":"StructuredDocumentation","src":"493:150:110","text":" @dev NFT metadata.\n @param _id The token ID (keccak256 of the label).\n @return Metadata URI or base64 encoded metadata."},"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"657:8:110","overrides":{"id":59953,"nodeType":"OverrideSpecifier","overrides":[{"id":59952,"name":"BaseNFT","nameLocations":["695:7:110"],"nodeType":"IdentifierPath","referencedDeclaration":54986,"src":"695:7:110"}],"src":"686:17:110"},"parameters":{"id":59951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59950,"mutability":"mutable","name":"_id","nameLocation":"674:3:110","nodeType":"VariableDeclaration","scope":60036,"src":"666:11:110","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59949,"name":"uint256","nodeType":"ElementaryTypeName","src":"666:7:110","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"665:13:110"},"returnParameters":{"id":59956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60036,"src":"718:13:110","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59954,"name":"string","nodeType":"ElementaryTypeName","src":"718:6:110","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"717:15:110"},"scope":60037,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":59925,"name":"BaseNFT","nameLocations":["338:7:110"],"nodeType":"IdentifierPath","referencedDeclaration":54986,"src":"338:7:110"},"id":59926,"nodeType":"InheritanceSpecifier","src":"338:7:110"}],"canonicalName":"AvatarNFTV1","contractDependencies":[],"contractKind":"contract","documentation":{"id":59924,"nodeType":"StructuredDocumentation","src":"235:78:110","text":" @dev Metadata generation is delegated to updatable proxy contract."},"fullyImplemented":true,"linearizedBaseContracts":[60037,54986,55121,49161,49322,49277,49873,49885,45526,49674],"name":"AvatarNFTV1","nameLocation":"323:11:110","scope":60038,"usedErrors":[]}],"license":"MPL-2.0"},"id":110}