solc-0.8.36-fakeopcode 0xd86756dbb01e75a11aadacb75c8495759ed92033 optimized

9479 bytes

608060405234801561000f575f5ffd5b50600436106101fd575f3560e01c806370a0823111610114578063c2376dff116100a9578063dd62ed3e11610079578063dd62ed3e14610489578063e5c4fffe146104c1578063e696393a146104f1578063f51b0fd4146104fa578063f9854bfc14610502575f5ffd5b8063c2376dff14610453578063c7af33521461045b578063cd6dc68714610463578063d38bfff414610476575f5ffd5b80639d01fc72116100e45780639d01fc72146104075780639dc29fac1461041a578063a9059cbb1461042d578063baa9c9db14610440575f5ffd5b806370a08231146103c45780637a46a9c5146103d75780637d0d66ff146103df57806395d89b41146103e7575f5ffd5b806339a7919f116101955780635d36b190116101655780635d36b1901461033c5780635f5a857714610344578063609350cd1461036c5780636691cb3d146103945780636b96be391461039c575f5ffd5b806339a7919f146102d457806340c10f19146102e7578063430bf08a146102fa578063456ee2861461030d575f5ffd5b80630c340a24116101d05780630c340a241461028957806318160ddd146102a957806323b872dd146102b2578063313ce567146102c5575f5ffd5b806306a2da3d1461020157806306fdde0314610216578063077f22b714610250578063095ea7b314610266575b5f5ffd5b61021461020f3660046121ab565b61052a565b005b60408051808201909152600c81526b27b934b3b4b71022ba3432b960a11b60208201525b60405161024791906121c6565b60405180910390f35b610258610789565b604051908152602001610247565b6102796102743660046121fb565b6107a1565b6040519015158152602001610247565b61029161080d565b6040516001600160a01b039091168152602001610247565b610258609a5481565b6102796102c0366004612225565b610823565b60405160128152602001610247565b6102146102e2366004612263565b61094a565b6102146102f53660046121fb565b610b20565b609c54610291906001600160a01b031681565b61032f61031b3660046121ab565b60a26020525f908152604090205460ff1681565b604051610247919061228e565b610214610c4b565b6102916103523660046121ab565b60a46020525f90815260409020546001600160a01b031681565b61025861037a3660046121ab565b6001600160a01b03165f90815260a1602052604090205490565b610258610ce8565b6102916103aa3660046121ab565b60a56020525f90815260409020546001600160a01b031681565b6102586103d23660046121ab565b610cfb565b609f54610258565b609e54610258565b60408051808201909152600481526309e8aa8960e31b602082015261023a565b6102146104153660046122b4565b610de4565b6102146104283660046121fb565b611367565b61027961043b3660046121fb565b611452565b61021461044e3660046121ab565b6114d9565b610214611557565b610279611560565b6102146104713660046121fb565b611586565b6102146104843660046121ab565b611669565b6102586104973660046122b4565b6001600160a01b039182165f908152609b6020908152604080832093909416825291909152205490565b6104d46104cf3660046121ab565b61170b565b604080519384526020840192909252151590820152606001610247565b61025860a05481565b61021461173e565b6105156105103660046121ab565b611747565b60408051928352602083019190915201610247565b610532611560565b806105b05750609c546040805163570d8e1d60e01b815290516001600160a01b039092169163570d8e1d916004808201926020929091908290030181865afa158015610580573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a491906122eb565b6001600160a01b031633145b6105d55760405162461bcd60e51b81526004016105cc90612306565b60405180910390fd5b6001600160a01b038082165f90815260a46020526040902054166106365760405162461bcd60e51b815260206004820152601860248201527716995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105cc565b6001600160a01b038082165f90815260a460205260408120549091169061065c83610cfb565b90505f61066883610cfb565b6001600160a01b0384165f908152609d602052604081205491925061068c836117c6565b6001600160a01b038681165f81815260a56020908152604080832080546001600160a01b0319908116909155948c16835260a48252808320805490951690945560a2808252848320805460ff19908116600117909155609d8084528685208c9055948452908252848320805490911660021790559190915290812082905590915061071683611806565b61071f83611806565b6107299190612362565b905061073d8161073887611806565b611873565b604080516001600160a01b03808a168252881660208201527fa4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd3910160405180910390a150505050505050565b5f633b9aca00609e5461079c9190612388565b905090565b335f818152609b602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107fb9086815260200190565b60405180910390a35060015b92915050565b5f61079c5f5160206124e75f395f51905f525490565b5f6001600160a01b0383166108755760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220746f207a65726f206164647265737360401b60448201526064016105cc565b6001600160a01b0384165f908152609b60209081526040808320338452909152902054808311156108dd5760405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b60448201526064016105cc565b6001600160a01b0385165f908152609b602090815260408083203384529091529020838203905561090f8585856118b7565b6040518381526001600160a01b0380861691908716905f5160206124c75f395f51905f529060200160405180910390a3506001949350505050565b609c546001600160a01b031633146109745760405162461bcd60e51b81526004016105cc906123a7565b5f609a54116109c55760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420696e637265617365203020737570706c79000000000000000060448201526064016105cc565b80609a5403610a1857609a54609e54609f5460408051938452602084019290925282820152517f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e2572359181900360600190a150565b6001600160801b038111610a2c5780610a35565b6001600160801b035b609a81905560a0545f91610a4991906123de565b905080600182609e54670de0b6b3a7640000610a6591906123f1565b610a6f9190612408565b610a7991906123de565b610a839190612388565b609f819055610ad45760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206368616e676520696e20737570706c79000000000000000060448201526064016105cc565b609a54609e54609f5460408051938452602084019290925282820152517f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e2572359181900360600190a1505b50565b609c546001600160a01b03163314610b4a5760405162461bcd60e51b81526004016105cc906123a7565b6001600160a01b038216610ba05760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f2061646472657373000000000000000060448201526064016105cc565b5f5f610bb484610baf85611806565b6118fe565b91509150610bc28282611873565b82609a54610bd09190612408565b609a8190556001600160801b0311610c175760405162461bcd60e51b815260206004820152600a6024820152694d617820737570706c7960b01b60448201526064016105cc565b6040518381526001600160a01b038516905f905f5160206124c75f395f51905f52906020015b60405180910390a350505050565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db546001600160a01b03163314610cdd5760405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b60648201526084016105cc565b610ce633611bdc565b565b5f633b9aca00609f5461079c9190612388565b6001600160a01b0381165f90815260a2602052604081205460ff166003816004811115610d2a57610d2a61227a565b03610d4b5750506001600160a01b03165f908152609d602052604090205490565b5f610d5584611c3b565b6001600160a01b0385165f908152609d6020526040902054610d7f90670de0b6b3a76400006123f1565b610d899190612388565b90506004826004811115610d9f57610d9f61227a565b03610ddd576001600160a01b038085165f90815260a560209081526040808320549093168252609d90522054610dd590826123de565b949350505050565b9392505050565b610dec611560565b80610e6a5750609c546040805163570d8e1d60e01b815290516001600160a01b039092169163570d8e1d916004808201926020929091908290030181865afa158015610e3a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5e91906122eb565b6001600160a01b031633145b610e865760405162461bcd60e51b81526004016105cc90612306565b6001600160a01b038216610edc5760405162461bcd60e51b815260206004820152601d60248201527f5a65726f2066726f6d2061646472657373206e6f7420616c6c6f77656400000060448201526064016105cc565b6001600160a01b038116610f325760405162461bcd60e51b815260206004820152601b60248201527f5a65726f20746f2061646472657373206e6f7420616c6c6f776564000000000060448201526064016105cc565b6001600160a01b0380821690831603610f8d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f742064656c656761746520746f2073656c6600000000000000000060448201526064016105cc565b6001600160a01b038082165f90815260a5602052604090205416158015610fcb57506001600160a01b038082165f90815260a4602052604090205416155b8015610fee57506001600160a01b038083165f90815260a5602052604090205416155b801561101157506001600160a01b038083165f90815260a4602052604090205416155b6110695760405162461bcd60e51b8152602060048201526024808201527f426c6f636b6564206279206578697374696e67207969656c642064656c6567616044820152633a34b7b760e11b60648201526084016105cc565b6001600160a01b038083165f90815260a2602052604080822054928416825281205460ff9283169216908260048111156110a5576110a561227a565b14806110c2575060018260048111156110c0576110c061227a565b145b806110de575060028260048111156110dc576110dc61227a565b145b61112a5760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642072656261736553746174652066726f6d000000000000000060448201526064016105cc565b5f81600481111561113d5761113d61227a565b148061115a575060018160048111156111585761115861227a565b145b80611176575060028160048111156111745761117461227a565b145b6111bb5760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726562617365537461746520746f60501b60448201526064016105cc565b6001600160a01b0384165f90815260a1602052604081205490036111e2576111e284611c6f565b6001600160a01b0383165f90815260a16020526040902054156112085761120883611e45565b5f61121285610cfb565b90505f61121e85610cfb565b6001600160a01b0386165f908152609d602052604081205491925061124b6112468486612408565b6117c6565b6001600160a01b038981165f81815260a46020908152604080832080546001600160a01b0319908116968f1696871790915585845260a5835281842080549091168517905592825260a2808252838320805460ff1990811660031790915560a18352848420670de0b6b3a76400009055609d8084528585208c9055958452908252838320805490911660041790559290925281208290559091506112ee83611806565b6112f783611806565b6113019190612362565b90506113198161131087611806565b6107389061241b565b604080516001600160a01b03808c1682528a1660208201527f31e39e4bb9df9d4143551c8a3a4798fc19b0854768570ce84d966f6adffd01a3910160405180910390a1505050505050505050565b609c546001600160a01b031633146113915760405162461bcd60e51b81526004016105cc906123a7565b6001600160a01b0382166113e75760405162461bcd60e51b815260206004820152601a60248201527f4275726e2066726f6d20746865207a65726f206164647265737300000000000060448201526064016105cc565b801561144e575f5f611405846113fc85611806565b610baf9061241b565b915091506114138282611873565b82609a5461142191906123de565b609a556040518381525f906001600160a01b038616905f5160206124c75f395f51905f5290602001610c3d565b5050565b5f6001600160a01b0383166114a45760405162461bcd60e51b81526020600482015260186024820152775472616e7366657220746f207a65726f206164647265737360401b60448201526064016105cc565b6114af3384846118b7565b6040518281526001600160a01b0384169033905f5160206124c75f395f51905f52906020016107fb565b6114e1611560565b6114fd5760405162461bcd60e51b81526004016105cc90612435565b6001600160a01b03811661154e5760405162461bcd60e51b815260206004820152601860248201527716995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b60448201526064016105cc565b610b1d81611e45565b610ce633611c6f565b5f6115765f5160206124e75f395f51905f525490565b6001600160a01b03163314919050565b61158e611560565b6115aa5760405162461bcd60e51b81526004016105cc90612435565b6001600160a01b0382166115f55760405162461bcd60e51b81526020600482015260126024820152715a65726f207661756c74206164647265737360701b60448201526064016105cc565b609c546001600160a01b0316156116445760405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016105cc565b609f55609c80546001600160a01b0319166001600160a01b0392909216919091179055565b611671611560565b61168d5760405162461bcd60e51b81526004016105cc90612435565b6116b5817f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db55565b6001600160a01b0381166116d45f5160206124e75f395f51905f525490565b6040516001600160a01b03909116907fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d905f90a350565b6001600160a01b0381165f908152609d60205260408120548190819061173085611c3b565b909590945060019350915050565b610ce633611e45565b5f5f5f61175384611c3b565b9050806b033b2e3c9fd0803ce800000003611787576001600160a01b039093165f908152609d602052604090205493915050565b6001600160a01b0384165f908152609d60205260409020546117ae90633b9aca0090612388565b6117bc633b9aca0083612388565b9250925050915091565b5f670de0b6b3a76400006001609f54846117e091906123f1565b6117f290670de0b6b3a7640000612408565b6117fc91906123de565b6108079190612388565b5f6001600160ff1b0382111561186f5760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b60648201526084016105cc565b5090565b811561189b5761189782611888609e54611806565b611892919061246c565b612019565b609e555b801561144e576118b08161188860a054611806565b60a0555050565b5f5f6118c6856113fc85611806565b915091505f5f6118d986610baf87611806565b90925090506118f56118eb838661246c565b610738838661246c565b50505050505050565b6001600160a01b0382165f90815260a26020526040812054819060ff168161192d61192887610cfb565b611806565b90505f61193a868361246c565b12156119885760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016105cc565b5f611996611892878461246c565b905060038360048111156119ac576119ac61227a565b03611a4d576001600160a01b038088165f90815260a46020526040812054909116906119d782610cfb565b90505f6119e76112468584612408565b6001600160a01b0384165f908152609d6020526040902054909150611a0b90611806565b611a1482611806565b611a1e9190612362565b6001600160a01b03808c165f908152609d60205260408082208890559590911681529390932055509450611bd2565b6004836004811115611a6157611a6161227a565b03611af6576001600160a01b038088165f90815260a560209081526040808320549093168252609d905290812054611a9d906112469084612408565b6001600160a01b0389165f908152609d6020526040902054909150611ac190611806565b611aca82611806565b611ad49190612362565b6001600160a01b0389165f908152609d60205260409020919091559450611bd2565b611aff8761206a565b6001600160a01b0387165f90815260a160205260409020548015611b715786945080670de0b6b3a764000014611b52576001600160a01b0388165f90815260a160205260409020670de0b6b3a764000090555b6001600160a01b0388165f908152609d60205260409020829055611bd0565b5f611b7b836117c6565b6001600160a01b038a165f908152609d6020526040902054909150611b9f90611806565b611ba882611806565b611bb29190612362565b6001600160a01b038a165f908152609d602052604090209190915595505b505b5050509250929050565b6001600160a01b038116611c325760405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f72206973206164647265737328302900000000000060448201526064016105cc565b610b1d81612133565b6001600160a01b0381165f90815260a160205260408120548015611c5f5792915050565b5050609f54919050565b50919050565b6001600160a01b0381165f90815260a1602052604090205415611cd45760405162461bcd60e51b815260206004820152601860248201527f4163636f756e74206d757374206265207265626173696e67000000000000000060448201526064016105cc565b6001600160a01b0381165f90815260a2602052604090205460ff166002816004811115611d0357611d0361227a565b1480611d1f57505f816004811115611d1d57611d1d61227a565b145b611d7f5760405162461bcd60e51b815260206004820152602b60248201527f4f6e6c79207374616e64617264207265626173696e67206163636f756e74732060448201526a18d85b881bdc1d081bdd5d60aa1b60648201526084016105cc565b6001600160a01b0382165f908152609d602052604081205490611da184610cfb565b6001600160a01b0385165f90815260a260209081526040808320805460ff1916600117905560a18252808320670de0b6b3a76400009055609d90915290208190559050611e02611df083611806565b611df99061241b565b61073883611806565b6040516001600160a01b03851681527f201ace89ad3f5ab7428b91989f6a50d1998791c7b94a0fa812fd64a57687165e906020015b60405180910390a150505050565b5f611e4f82610cfb565b6001600160a01b0383165f90815260a16020526040902054909150151580611e8c57506001600160a01b0382165f908152609d6020526040902054155b611ed85760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e74206d757374206265206e6f6e2d7265626173696e670000000060448201526064016105cc565b6001600160a01b0382165f90815260a2602052604090205460ff166001816004811115611f0757611f0761227a565b1480611f2357505f816004811115611f2157611f2161227a565b145b611f865760405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207374616e64617264206e6f6e2d7265626173696e67206163636f7560448201526d373a399031b0b71037b83a1034b760911b60648201526084016105cc565b5f611f90836117c6565b6001600160a01b0385165f90815260a260209081526040808320805460ff1916600217905560a18252808320839055609d90915290208190559050611fe0611fd782611806565b61131085611806565b6040516001600160a01b03851681527f19a249fa2050bac8314ac10e3ad420bd9825574bf750f58810c3c7adfc7b1c6f90602001611e37565b5f5f82121561186f5760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f73697469766560448201526064016105cc565b6001600160a01b0381163b5f8115806120c657508160171480156120c657508260601b60601c803b806020016040519081016040528181525f908060200190933c6120b490612493565b6001600160e81b03191661ef0160f01b145b9050801580156120ff57506001600160a01b0383165f90815260a2602052604081205460ff1660048111156120fd576120fd61227a565b145b801561212057506001600160a01b0383165f90815260a16020526040902054155b1561212e5761212e83611c6f565b505050565b6001600160a01b0381166121525f5160206124e75f395f51905f525490565b6040516001600160a01b03909116907fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a905f90a35f5160206124e75f395f51905f5255565b6001600160a01b0381168114610b1d575f5ffd5b5f602082840312156121bb575f5ffd5b8135610ddd81612197565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f6040838503121561220c575f5ffd5b823561221781612197565b946020939093013593505050565b5f5f5f60608486031215612237575f5ffd5b833561224281612197565b9250602084013561225281612197565b929592945050506040919091013590565b5f60208284031215612273575f5ffd5b5035919050565b634e487b7160e01b5f52602160045260245ffd5b60208101600583106122ae57634e487b7160e01b5f52602160045260245ffd5b91905290565b5f5f604083850312156122c5575f5ffd5b82356122d081612197565b915060208301356122e081612197565b809150509250929050565b5f602082840312156122fb575f5ffd5b8151610ddd81612197565b60208082526028908201527f43616c6c6572206973206e6f74207468652053747261746567697374206f722060408201526723b7bb32b93737b960c11b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b8181035f8312801583831316838312821617156123815761238161234e565b5092915050565b5f826123a257634e487b7160e01b5f52601260045260245ffd5b500490565b60208082526017908201527f43616c6c6572206973206e6f7420746865205661756c74000000000000000000604082015260600190565b818103818111156108075761080761234e565b80820281158282048414176108075761080761234e565b808201808211156108075761080761234e565b5f600160ff1b820161242f5761242f61234e565b505f0390565b6020808252601a908201527f43616c6c6572206973206e6f742074686520476f7665726e6f72000000000000604082015260600190565b8082018281125f83128015821682158216171561248b5761248b61234e565b505092915050565b805160208201516001600160e81b031916906003811015611c69576001600160e81b0319600391820390911b1b1691905056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a