{"abi":[{"type":"constructor","inputs":[{"name":"name","type":"string","internalType":"string"},{"name":"symbol","type":"string","internalType":"string"},{"name":"_totalSupply","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"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":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","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":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000fec38038062000fec83398101604081905262000034916200026b565b828260036200004483826200036c565b5060046200005382826200036c565b505050620000706200006a6200008560201b60201c565b62000089565b6200007c3382620000db565b50505062000460565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001365760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b80600260008282546200014a919062000438565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ce57600080fd5b81516001600160401b0380821115620001eb57620001eb620001a6565b604051601f8301601f19908116603f01168101908282118183101715620002165762000216620001a6565b816040528381526020925086838588010111156200023357600080fd5b600091505b8382101562000257578582018301518183018401529082019062000238565b600093810190920192909252949350505050565b6000806000606084860312156200028157600080fd5b83516001600160401b03808211156200029957600080fd5b620002a787838801620001bc565b94506020860151915080821115620002be57600080fd5b50620002cd86828701620001bc565b925050604084015190509250925092565b600181811c90821680620002f357607f821691505b6020821081036200031457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001a157600081815260208120601f850160051c81016020861015620003435750805b601f850160051c820191505b8181101562000364578281556001016200034f565b505050505050565b81516001600160401b03811115620003885762000388620001a6565b620003a081620003998454620002de565b846200031a565b602080601f831160018114620003d85760008415620003bf5750858301515b600019600386901b1c1916600185901b17855562000364565b600085815260208120601f198616915b828110156200040957888601518255948401946001909101908401620003e8565b5085821015620004285787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200045a57634e487b7160e01b600052601160045260246000fd5b92915050565b610b7c80620004706000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146101eb578063a9059cbb146101fe578063dd62ed3e14610211578063f2fde38b1461024a57600080fd5b806370a0823114610197578063715018a6146101c05780638da5cb5b146101c857806395d89b41146101e357600080fd5b806323b872dd116100d357806323b872dd1461014d578063313ce56714610160578063395093511461016f57806340c10f191461018257600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261025d565b60405161010f91906109ef565b60405180910390f35b61012b610126366004610a59565b6102ef565b604051901515815260200161010f565b6002545b60405190815260200161010f565b61012b61015b366004610a83565b610309565b6040516012815260200161010f565b61012b61017d366004610a59565b61032d565b610195610190366004610a59565b61036c565b005b61013f6101a5366004610abf565b6001600160a01b031660009081526020819052604090205490565b6101956103e1565b6005546040516001600160a01b03909116815260200161010f565b6101026103f5565b61012b6101f9366004610a59565b610404565b61012b61020c366004610a59565b610496565b61013f61021f366004610ae1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610195610258366004610abf565b6104a4565b60606003805461026c90610b14565b80601f016020809104026020016040519081016040528092919081815260200182805461029890610b14565b80156102e55780601f106102ba576101008083540402835291602001916102e5565b820191906000526020600020905b8154815290600101906020018083116102c857829003601f168201915b5050505050905090565b6000336102fd81858561051d565b60019150505b92915050565b600033610317858285610641565b6103228585856106d3565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906102fd9082908690610367908790610b4e565b61051d565b600081116103d35760405162461bcd60e51b815260206004820152602960248201527f45524332303a206d696e7420616d6f756e74206d75737420626520677265617460448201526806572207468616e20360bc1b60648201526084015b60405180910390fd5b6103dd8282610877565b5050565b6103e9610936565b6103f36000610990565b565b60606004805461026c90610b14565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104895760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103ca565b610322828686840361051d565b6000336102fd8185856106d3565b6104ac610936565b6001600160a01b0381166105115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ca565b61051a81610990565b50565b6001600160a01b03831661057f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103ca565b6001600160a01b0382166105e05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103ca565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146106cd57818110156106c05760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ca565b6106cd848484840361051d565b50505050565b6001600160a01b0383166107375760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103ca565b6001600160a01b0382166107995760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103ca565b6001600160a01b038316600090815260208190526040902054818110156108115760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103ca565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36106cd565b6001600160a01b0382166108cd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103ca565b80600260008282546108df9190610b4e565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b031633146103f35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ca565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610a1c57858101830151858201604001528201610a00565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a5457600080fd5b919050565b60008060408385031215610a6c57600080fd5b610a7583610a3d565b946020939093013593505050565b600080600060608486031215610a9857600080fd5b610aa184610a3d565b9250610aaf60208501610a3d565b9150604084013590509250925092565b600060208284031215610ad157600080fd5b610ada82610a3d565b9392505050565b60008060408385031215610af457600080fd5b610afd83610a3d565b9150610b0b60208401610a3d565b90509250929050565b600181811c90821680610b2857607f821691505b602082108103610b4857634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561030357634e487b7160e01b600052601160045260246000fdfea164736f6c6343000813000a","sourceMap":"150:351:70:-:0;;;193:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;272:4;278:6;2046:5:30;:13;272:4:70;2046:5:30;:13;:::i;:::-;-1:-1:-1;2069:7:30;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;936:32:23;955:12;:10;;;:12;;:::i;:::-;936:18;:32::i;:::-;296:31:70::1;302:10;314:12:::0;296:5:::1;:31::i;:::-;193:141:::0;;;150:351;;640:96:36;719:10;;640:96::o;2426:187:23:-;2518:6;;;-1:-1:-1;;;;;2534:17:23;;;-1:-1:-1;;;;;;2534:17:23;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;8520:535:30:-;-1:-1:-1;;;;;8603:21:30;;8595:65;;;;-1:-1:-1;;;8595:65:30;;4410:2:80;8595:65:30;;;4392:21:80;4449:2;4429:18;;;4422:30;4488:33;4468:18;;;4461:61;4539:18;;8595:65:30;;;;;;;;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:30;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;4941:25:80;;;8952:37:30;;4914:18:80;8952:37:30;;;;;;;8520:535;;:::o;12073:91::-;;;;:::o;14:127:80:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:80;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:80;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:80:o;991:623::-;1099:6;1107;1115;1168:2;1156:9;1147:7;1143:23;1139:32;1136:52;;;1184:1;1181;1174:12;1136:52;1211:16;;-1:-1:-1;;;;;1276:14:80;;;1273:34;;;1303:1;1300;1293:12;1273:34;1326:61;1379:7;1370:6;1359:9;1355:22;1326:61;:::i;:::-;1316:71;;1433:2;1422:9;1418:18;1412:25;1396:41;;1462:2;1452:8;1449:16;1446:36;;;1478:1;1475;1468:12;1446:36;;1501:63;1556:7;1545:8;1534:9;1530:24;1501:63;:::i;:::-;1491:73;;;1604:2;1593:9;1589:18;1583:25;1573:35;;991:623;;;;;:::o;1619:380::-;1698:1;1694:12;;;;1741;;;1762:61;;1816:4;1808:6;1804:17;1794:27;;1762:61;1869:2;1861:6;1858:14;1838:18;1835:38;1832:161;;1915:10;1910:3;1906:20;1903:1;1896:31;1950:4;1947:1;1940:15;1978:4;1975:1;1968:15;1832:161;;1619:380;;;:::o;2130:545::-;2232:2;2227:3;2224:11;2221:448;;;2268:1;2293:5;2289:2;2282:17;2338:4;2334:2;2324:19;2408:2;2396:10;2392:19;2389:1;2385:27;2379:4;2375:38;2444:4;2432:10;2429:20;2426:47;;;-1:-1:-1;2467:4:80;2426:47;2522:2;2517:3;2513:12;2510:1;2506:20;2500:4;2496:31;2486:41;;2577:82;2595:2;2588:5;2585:13;2577:82;;;2640:17;;;2621:1;2610:13;2577:82;;;2581:3;;;2130:545;;;:::o;2851:1352::-;2971:10;;-1:-1:-1;;;;;2993:30:80;;2990:56;;;3026:18;;:::i;:::-;3055:97;3145:6;3105:38;3137:4;3131:11;3105:38;:::i;:::-;3099:4;3055:97;:::i;:::-;3207:4;;3271:2;3260:14;;3288:1;3283:663;;;;3990:1;4007:6;4004:89;;;-1:-1:-1;4059:19:80;;;4053:26;4004:89;-1:-1:-1;;2808:1:80;2804:11;;;2800:24;2796:29;2786:40;2832:1;2828:11;;;2783:57;4106:81;;3253:944;;3283:663;2077:1;2070:14;;;2114:4;2101:18;;-1:-1:-1;;3319:20:80;;;3437:236;3451:7;3448:1;3445:14;3437:236;;;3540:19;;;3534:26;3519:42;;3632:27;;;;3600:1;3588:14;;;;3467:19;;3437:236;;;3441:3;3701:6;3692:7;3689:19;3686:201;;;3762:19;;;3756:26;-1:-1:-1;;3845:1:80;3841:14;;;3857:3;3837:24;3833:37;3829:42;3814:58;3799:74;;3686:201;-1:-1:-1;;;;;3933:1:80;3917:14;;;3913:22;3900:36;;-1:-1:-1;2851:1352:80:o;4568:222::-;4633:9;;;4654:10;;;4651:133;;;4706:10;4701:3;4697:20;4694:1;4687:31;4741:4;4738:1;4731:15;4769:4;4766:1;4759:15;4651:133;4568:222;;;;:::o;4795:177::-;150:351:70;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d7146101eb578063a9059cbb146101fe578063dd62ed3e14610211578063f2fde38b1461024a57600080fd5b806370a0823114610197578063715018a6146101c05780638da5cb5b146101c857806395d89b41146101e357600080fd5b806323b872dd116100d357806323b872dd1461014d578063313ce56714610160578063395093511461016f57806340c10f191461018257600080fd5b806306fdde03146100fa578063095ea7b31461011857806318160ddd1461013b575b600080fd5b61010261025d565b60405161010f91906109ef565b60405180910390f35b61012b610126366004610a59565b6102ef565b604051901515815260200161010f565b6002545b60405190815260200161010f565b61012b61015b366004610a83565b610309565b6040516012815260200161010f565b61012b61017d366004610a59565b61032d565b610195610190366004610a59565b61036c565b005b61013f6101a5366004610abf565b6001600160a01b031660009081526020819052604090205490565b6101956103e1565b6005546040516001600160a01b03909116815260200161010f565b6101026103f5565b61012b6101f9366004610a59565b610404565b61012b61020c366004610a59565b610496565b61013f61021f366004610ae1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610195610258366004610abf565b6104a4565b60606003805461026c90610b14565b80601f016020809104026020016040519081016040528092919081815260200182805461029890610b14565b80156102e55780601f106102ba576101008083540402835291602001916102e5565b820191906000526020600020905b8154815290600101906020018083116102c857829003601f168201915b5050505050905090565b6000336102fd81858561051d565b60019150505b92915050565b600033610317858285610641565b6103228585856106d3565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906102fd9082908690610367908790610b4e565b61051d565b600081116103d35760405162461bcd60e51b815260206004820152602960248201527f45524332303a206d696e7420616d6f756e74206d75737420626520677265617460448201526806572207468616e20360bc1b60648201526084015b60405180910390fd5b6103dd8282610877565b5050565b6103e9610936565b6103f36000610990565b565b60606004805461026c90610b14565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156104895760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103ca565b610322828686840361051d565b6000336102fd8185856106d3565b6104ac610936565b6001600160a01b0381166105115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103ca565b61051a81610990565b50565b6001600160a01b03831661057f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103ca565b6001600160a01b0382166105e05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103ca565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146106cd57818110156106c05760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103ca565b6106cd848484840361051d565b50505050565b6001600160a01b0383166107375760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103ca565b6001600160a01b0382166107995760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103ca565b6001600160a01b038316600090815260208190526040902054818110156108115760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103ca565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36106cd565b6001600160a01b0382166108cd5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103ca565b80600260008282546108df9190610b4e565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6005546001600160a01b031633146103f35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ca565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208083528351808285015260005b81811015610a1c57858101830151858201604001528201610a00565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a5457600080fd5b919050565b60008060408385031215610a6c57600080fd5b610a7583610a3d565b946020939093013593505050565b600080600060608486031215610a9857600080fd5b610aa184610a3d565b9250610aaf60208501610a3d565b9150604084013590509250925092565b600060208284031215610ad157600080fd5b610ada82610a3d565b9392505050565b60008060408385031215610af457600080fd5b610afd83610a3d565b9150610b0b60208401610a3d565b90509250929050565b600181811c90821680610b2857607f821691505b602082108103610b4857634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561030357634e487b7160e01b600052601160045260246000fdfea164736f6c6343000813000a","sourceMap":"150:351:70:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:80;;1185:22;1167:41;;1155:2;1140:18;4444:197:30;1027:187:80;3255:106:30;3342:12;;3255:106;;;1365:25:80;;;1353:2;1338:18;3255:106:30;1219:177:80;5203:256:30;;;;;;:::i;:::-;;:::i;3104:91::-;;;3186:2;1876:36:80;;1864:2;1849:18;3104:91:30;1734:184:80;5854:234:30;;;;;;:::i;:::-;;:::i;340:159:70:-;;;;;;:::i;:::-;;:::i;:::-;;3419:125:30;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:30;3493:7;3519:18;;;;;;;;;;;;3419:125;1824:101:23;;;:::i;1201:85::-;1273:6;;1201:85;;-1:-1:-1;;;;;1273:6:23;;;2260:74:80;;2248:2;2233:18;1201:85:23;2114:226:80;2369:102:30;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4102:18:30;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149;2074:198:23;;;;;;:::i;:::-;;:::i;2158:98:30:-;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;719:10:36;4581:32:30;719:10:36;4597:7:30;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;719:10:36;5356:38:30;5372:4;719:10:36;5387:6:30;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:30;;5203:256;-1:-1:-1;;;;5203:256:30:o;5854:234::-;719:10:36;5942:4:30;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:30;;;;;;;;;;5942:4;;719:10:36;5996:64:30;;719:10:36;;4102:27:30;;6021:38;;6049:10;;6021:38;:::i;:::-;5996:8;:64::i;340:159:70:-;416:1;406:7;:11;398:65;;;;-1:-1:-1;;;398:65:70;;3424:2:80;398:65:70;;;3406:21:80;3463:2;3443:18;;;3436:30;3502:34;3482:18;;;3475:62;-1:-1:-1;;;3553:18:80;;;3546:39;3602:19;;398:65:70;;;;;;;;;473:19;479:3;484:7;473:5;:19::i;:::-;340:159;;:::o;1824:101:23:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2369:102:30:-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;719:10:36;6668:4:30;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:30;;;;;;;;;;6668:4;;719:10:36;6812:15:30;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:30;;3834:2:80;6784:85:30;;;3816:21:80;3873:2;3853:18;;;3846:30;3912:34;3892:18;;;3885:62;-1:-1:-1;;;3963:18:80;;;3956:35;4008:19;;6784:85:30;3632:401:80;6784:85:30;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;719:10:36;3873:28:30;719:10:36;3890:2:30;3894:6;3873:9;:28::i;2074:198:23:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:23;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:23;;4240:2:80;2154:73:23::1;::::0;::::1;4222:21:80::0;4279:2;4259:18;;;4252:30;4318:34;4298:18;;;4291:62;-1:-1:-1;;;4369:18:80;;;4362:36;4415:19;;2154:73:23::1;4038:402:80::0;2154:73:23::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;10457:340:30:-;-1:-1:-1;;;;;10558:19:30;;10550:68;;;;-1:-1:-1;;;10550:68:30;;4647:2:80;10550:68:30;;;4629:21:80;4686:2;4666:18;;;4659:30;4725:34;4705:18;;;4698:62;-1:-1:-1;;;4776:18:80;;;4769:34;4820:19;;10550:68:30;4445:400:80;10550:68:30;-1:-1:-1;;;;;10636:21:30;;10628:68;;;;-1:-1:-1;;;10628:68:30;;5052:2:80;10628:68:30;;;5034:21:80;5091:2;5071:18;;;5064:30;5130:34;5110:18;;;5103:62;-1:-1:-1;;;5181:18:80;;;5174:32;5223:19;;10628:68:30;4850:398:80;10628:68:30;-1:-1:-1;;;;;10707:18:30;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1365:25:80;;;10758:32:30;;1338:18:80;10758:32:30;;;;;;;10457:340;;;:::o;11078:411::-;-1:-1:-1;;;;;4102:18:30;;;11178:24;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11244:37:30;;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:30;;5455:2:80;11297:68:30;;;5437:21:80;5494:2;5474:18;;;5467:30;5533:31;5513:18;;;5506:59;5582:18;;11297:68:30;5253:353:80;11297:68:30;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:30;;7544:68;;;;-1:-1:-1;;;7544:68:30;;5813:2:80;7544:68:30;;;5795:21:80;5852:2;5832:18;;;5825:30;5891:34;5871:18;;;5864:62;-1:-1:-1;;;5942:18:80;;;5935:35;5987:19;;7544:68:30;5611:401:80;7544:68:30;-1:-1:-1;;;;;7630:16:30;;7622:64;;;;-1:-1:-1;;;7622:64:30;;6219:2:80;7622:64:30;;;6201:21:80;6258:2;6238:18;;;6231:30;6297:34;6277:18;;;6270:62;-1:-1:-1;;;6348:18:80;;;6341:33;6391:19;;7622:64:30;6017:399:80;7622:64:30;-1:-1:-1;;;;;7768:15:30;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:30;;6623:2:80;7793:72:30;;;6605:21:80;6662:2;6642:18;;;6635:30;6701:34;6681:18;;;6674:62;-1:-1:-1;;;6752:18:80;;;6745:36;6798:19;;7793:72:30;6421:402:80;7793:72:30;-1:-1:-1;;;;;7899:15:30;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1365:25:80;;;8114:13:30;;8163:26;;1338:18:80;8163:26:30;;;;;;;8200:37;12073:91;8520:535;-1:-1:-1;;;;;8603:21:30;;8595:65;;;;-1:-1:-1;;;8595:65:30;;7030:2:80;8595:65:30;;;7012:21:80;7069:2;7049:18;;;7042:30;7108:33;7088:18;;;7081:61;7159:18;;8595:65:30;6828:355:80;8595:65:30;8747:6;8731:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;8899:18:30;;:9;:18;;;;;;;;;;;:28;;;;;;8952:37;1365:25:80;;;8952:37:30;;1338:18:80;8952:37:30;;;;;;;340:159:70;;:::o;1359:130:23:-;1273:6;;-1:-1:-1;;;;;1273:6:23;719:10:36;1422:23:23;1414:68;;;;-1:-1:-1;;;1414:68:23;;7390:2:80;1414:68:23;;;7372:21:80;;;7409:18;;;7402:30;7468:34;7448:18;;;7441:62;7520:18;;1414:68:23;7188:356:80;2426:187:23;2518:6;;;-1:-1:-1;;;;;2534:17:23;;;-1:-1:-1;;2534:17:23;;;;;;;2566:40;;2518:6;;;2534:17;2518:6;;2566:40;;2499:16;;2566:40;2489:124;2426:187;:::o;14:548:80:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:80;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:80:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;1923:186::-;1982:6;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;2074:29;2093:9;2074:29;:::i;:::-;2064:39;1923:186;-1:-1:-1;;;1923:186:80:o;2345:260::-;2413:6;2421;2474:2;2462:9;2453:7;2449:23;2445:32;2442:52;;;2490:1;2487;2480:12;2442:52;2513:29;2532:9;2513:29;:::i;:::-;2503:39;;2561:38;2595:2;2584:9;2580:18;2561:38;:::i;:::-;2551:48;;2345:260;;;;;:::o;2610:380::-;2689:1;2685:12;;;;2732;;;2753:61;;2807:4;2799:6;2795:17;2785:27;;2753:61;2860:2;2852:6;2849:14;2829:18;2826:38;2823:161;;2906:10;2901:3;2897:20;2894:1;2887:31;2941:4;2938:1;2931:15;2969:4;2966:1;2959:15;2823:161;;2610:380;;;:::o;2995:222::-;3060:9;;;3081:10;;;3078:133;;;3133:10;3128:3;3124:20;3121:1;3114:31;3168:4;3165:1;3158:15;3196:4;3193:1;3186:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","owner()":"8da5cb5b","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_totalSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"},\"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\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/mocks/erc20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":500},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":oz-proxy/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":uniswapv3-router/=lib/v3-periphery/contracts/\",\":uniswapv3/=lib/v3-core/contracts/\",\":v3-core/=lib/v3-core/\",\":v3-periphery/=lib/v3-periphery/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"src/mocks/erc20.sol\":{\"keccak256\":\"0x313ac26fd07fe51051b74e4c1b2ccdc27bbe55ea82990946bb55465736c6b412\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://c817a00f38986cf00979acba6e51f2e77ed5e9959f64f6239c94c249817f9e55\",\"dweb:/ipfs/QmY3aKjZNtpt92EstYk5fFh6m5fGuttwNk6ZTHpuAtwLdf\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","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":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."},"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":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","oz-proxy/=lib/openzeppelin-contracts-upgradeable/contracts/","uniswapv3-router/=lib/v3-periphery/contracts/","uniswapv3/=lib/v3-core/contracts/","v3-core/=lib/v3-core/","v3-periphery/=lib/v3-periphery/contracts/"],"optimizer":{"enabled":true,"runs":500},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/mocks/erc20.sol":"MockERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"src/mocks/erc20.sol":{"keccak256":"0x313ac26fd07fe51051b74e4c1b2ccdc27bbe55ea82990946bb55465736c6b412","urls":["bzz-raw://c817a00f38986cf00979acba6e51f2e77ed5e9959f64f6239c94c249817f9e55","dweb:/ipfs/QmY3aKjZNtpt92EstYk5fFh6m5fGuttwNk6ZTHpuAtwLdf"],"license":"Unlicense"}},"version":1},"id":70}