solc-0.8.36-fakeopcode 0xdd3f50f8a6cafbe9b31a427582963f465e745af8 via-ir
9171 bytes
60806040526004361015610011575f80fd5b5f5f3560e01c806312065fe014610fdb5780631b7dd4c014610f435780631e35fed814610f295780631eddb62614610f0f57806322b1751d14610db957806327c8f19314610d2f5780633b36f59214610ceb57806354fd4d5014610cca578063606b649714610b4357806363a5db9e1461097857806372f5158d14610886578063888b042f14610863578063b7013dc114610775578063c095415d146106ef578063d0e30db0146101695763db82047b146100ca575f80fd5b80600319360112610166576100f06100e06114a0565b6001600160a01b031630146110d2565b61015b61014b6100fe6113d3565b6040516101436030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e810188838201520301601f198101835282610ff5565b519020611533565b6001600160a01b031633146110d2565b610163611159565b80f35b80fd5b5080600319360112610166576101806100e06114a0565b61019061018b61111e565b611573565b604051636ada784760e01b81526001600160a01b0390911691908290602081600481855afa9081156106675783916106d0575b5015610672576040516301ae78a160e11b8152602081600481855afa908115610667578391610635575b5034106105ca576102053461020061102b565b6116d7565b604051637eb6744f60e11b8152602081600481865afa9081156105bf57849161058d575b508082116103a4575b5050602060049160405192838092630de705b560e01b82525afa8015610399578290610365575b61026491503461225d565b8161035157670de0b6b3a764000061027d910434611744565b6001600160a01b037f000000000000000000000000ae78736cd615f374d3085123a210448e74fc6393169290833b1561034d57604051906394bf804d60e01b825260048201525f81604481833360601b60601c988960248401525af180156103425761032c575b50604080513481524260208201529293610163936001600160a01b03909116917f7aa1a8eb998c779420645fc14513bf058edb347d95c2fc2e6845bdc22f88863191a2611608565b61016392505f61033b91610ff5565b5f916102e4565b6040513d5f823e3d90fd5b5f80fd5b634e487b7160e01b82526012600452602482fd5b506020813d602011610391575b8161037f60209383610ff5565b8101031261034d576102649051610259565b3d9150610372565b6040513d84823e3d90fd5b6040516323fd21a560e11b8152602081600481875afa9081156104e857859161055e575b50156104f35760049060206103de61018b6111c4565b60405163e60b40bf60e01b815293849182906001600160a01b03165afa9081156104e85785916104b2575b61041392506116d7565b106104215760206004610232565b60405162461bcd60e51b815260206004820152605d60248201527f546865206465706f73697420706f6f6c2073697a65206166746572206465706f60448201527f736974696e672028616e64206d61746368696e672077697468206d696e69706f60648201527f6f6c7329206578636565647320746865206d6178696d756d2073697a65000000608482015260a490fd5b90506020823d6020116104e0575b816104cd60209383610ff5565b8101031261034d57610413915190610409565b3d91506104c0565b6040513d87823e3d90fd5b60405162461bcd60e51b815260206004820152603f60248201527f546865206465706f73697420706f6f6c2073697a65206166746572206465706f60448201527f736974696e67206578636565647320746865206d6178696d756d2073697a65006064820152608490fd5b610580915060203d602011610586575b6105788183610ff5565b8101906111ac565b5f6103c8565b503d61056e565b90506020813d6020116105b7575b816105a860209383610ff5565b8101031261034d57515f610229565b3d915061059b565b6040513d86823e3d90fd5b60405162461bcd60e51b815260206004820152603a60248201527f546865206465706f736974656420616d6f756e74206973206c6573732074686160448201527f6e20746865206d696e696d756d206465706f7369742073697a650000000000006064820152608490fd5b90506020813d60201161065f575b8161065060209383610ff5565b8101031261034d57515f6101ed565b3d9150610643565b6040513d85823e3d90fd5b60405162461bcd60e51b815260206004820152603060248201527f4465706f7369747320696e746f20526f636b657420506f6f6c2061726520637560448201526f1c9c995b9d1b1e48191a5cd8589b195960821b6064820152608490fd5b6106e9915060203d602011610586576105788183610ff5565b5f6101c3565b5080600319360112610166576107066100e06114a0565b61016361014b60405161071a604082610ff5565b600b8152602081016a1c9bd8dad95d15985d5b1d60aa1b81526101436030604051809360208201956f636f6e74726163742e6164647265737360801b87525180918484015e810188838201520301601f198101835282610ff5565b503461016657806003193601126101665761079661079161102b565b6121da565b6107a161079161167c565b918083830393129082841390821593851283168285161761084f575082610846575b821561082d575b5050156107dc57602090604051908152f35b60405162461bcd60e51b8152602060048201526024808201527f5369676e6564536166654d6174683a207375627472616374696f6e206f766572604482015263666c6f7760e01b6064820152608490fd5b9091508161083e575b505f806107ca565b90505f610836565b801592506107c3565b634e487b7160e01b81526011600452602490fd5b5034610166578060031936011261016657602061087e611400565b604051908152f35b50806003193601126101665761089d6100e06114a0565b6040516e6d696e69706f6f6c2e65786973747360881b602082019081523360601b602f83015260238252906108d3604382610ff5565b5190208154604051633d70e7e560e11b815260048101929092526020908290602490829060081c6001600160a01b03165afa908115610399578291610959575b501561092157610163611159565b60405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a59081b5a5b9a5c1bdbdb60821b6044820152606490fd5b610972915060203d602011610586576105788183610ff5565b5f610913565b5034610166576020366003190112610166576004356109986100e06114a0565b6109a36100fe6113d3565b33906109b9906001600160a01b031682146110d2565b6109c1611400565b8211610aeb57826001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b15610ad257818091602460405180948193631df699e760e11b83528960048401525af1801561039957610ad6575b506001600160a01b037f000000000000000000000000ae78736cd615f374d3085123a210448e74fc639316803b15610ad257818491600460405180948193630d930b5160e31b83525af1801561039957610ab9575b5050604080519283524260208401526001600160a01b03909116917f992f462cfb62e164bd03bf07baf2cffce83fbd9370cae10635842b20200121209190a280f35b81610ac391610ff5565b610ace57825f610a77565b8280fd5b5080fd5b81610ae091610ff5565b610ace57825f610a22565b60405162461bcd60e51b815260206004820152602a60248201527f496e73756666696369656e74206578636573732062616c616e636520666f72206044820152691dda5d1a191c985dd85b60b21b6064820152608490fd5b50346101665760203660031901126101665780600435610b646100e06114a0565b610bb761014b610b726113a4565b6040516101436030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e810189838201520301601f198101835282610ff5565b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b15610cc657828091602460405180948193631df699e760e11b83528760048401525af1908115610667578391610cae575b50808092335af13d15610ca9573d67ffffffffffffffff8111610c955760405190610c49601f8201601f191660200183610ff5565b81528260203d92013e5b15610c5b5780f35b60405162461bcd60e51b815260206004820152601260248201527108cc2d2d8cac840e8de40e6cadcc8408aa8960731b6044820152606490fd5b634e487b7160e01b83526041600452602483fd5b610c53565b81610cb891610ff5565b610cc357815f610c14565b50fd5b5050fd5b50346101665780600319360112610166575460405160ff9091168152602090f35b5034610166578060031936011261016657610d076100e06114a0565b6020610d25610d1761018b61111e565b6001600160a01b031661179d565b6040519015158152f35b5034610166578060031936011261016657610d4b6100e06114a0565b610d59610d1761018b61111e565b15610d615780f35b60405162461bcd60e51b815260206004820152602a60248201527f4465706f7369742061737369676e6d656e7473206172652063757272656e746c6044820152691e48191a5cd8589b195960b21b6064820152608490fd5b50602036600319011261034d57610dd16100e06114a0565b610e2461014b610ddf6113a4565b6040516101436030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e81015f838201520301601f198101835282610ff5565b34610ea1575b8054819060081c6001600160a01b0316803b15610cc357818091604460405180948193632b6cd4f760e21b8352786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b600484015260043560248401525af1801561039957610e905750f35b81610e9a91610ff5565b6101665780f35b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d616803b1561034d575f60049160405192838092634c752fe560e11b825234905af1801561034257610efc575b50610e2a565b610f0891505f90610ff5565b5f5f610ef6565b3461034d575f36600319011261034d57602061087e6111f5565b3461034d575f36600319011261034d57602061087e61167c565b5f36600319011261034d57610f596100e06114a0565b610fd161014b604051610f6d604082610ff5565b6014815260208101733937b1b5b2ba20bab1ba34b7b726b0b730b3b2b960611b81526101436030604051809360208201956f636f6e74726163742e6164647265737360801b87525180918484015e81015f838201520301601f198101835282610ff5565b610fd9611159565b005b3461034d575f36600319011261034d57602061087e61102b565b90601f8019910116810190811067ffffffffffffffff82111761101757604052565b634e487b7160e01b5f52604160045260245ffd5b6040516335ee5f8760e01b815260206004820181905260116024830152701c9bd8dad95d11195c1bdcda5d141bdbdb607a1b6044830152816064816001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d6165afa908115610342575f916110a3575090565b90506020813d6020116110ca575b816110be60209383610ff5565b8101031261034d575190565b3d91506110b1565b156110d957565b60405162461bcd60e51b815260206004820152601c60248201527f496e76616c6964206f72206f7574646174656420636f6e7472616374000000006044820152606490fd5b6040519061112d604083610ff5565b602082527f726f636b657444414f50726f746f636f6c53657474696e67734465706f7369746020830152565b6111aa61116761018b61111e565b604080513481524260208201526001600160a01b039092169133917f3a6614e80d02b57255cbb1f8305fbeca53d7e05a4b779d40627919660851292591a2611608565b565b9081602091031261034d5751801515810361034d5790565b604051906111d3604083610ff5565b6013825272726f636b65744d696e69706f6f6c517565756560681b6020830152565b61120061018b61111e565b604051636ada784760e01b81526001600160a01b0390911690602081600481855afa908115610342575f91611385575b50156113805761123e61102b565b604051637eb6744f60e11b8152602081600481865afa908115610342575f9161134e575b50600460208294604051928380926323fd21a560e11b82525afa908115610342575f9161132f575b506112ab575b50818110156112a5576112a291611744565b90565b50505f90565b600491925060206112bd61018b6111c4565b60405163e60b40bf60e01b815293849182906001600160a01b03165afa908115610342575f916112f9575b6112f292506116d7565b905f611290565b90506020823d602011611327575b8161131460209383610ff5565b8101031261034d576112f29151906112e8565b3d9150611307565b611348915060203d602011610586576105788183610ff5565b5f61128a565b90506020813d602011611378575b8161136960209383610ff5565b8101031261034d57515f611262565b3d915061135c565b505f90565b61139e915060203d602011610586576105788183610ff5565b5f611230565b604051906113b3604083610ff5565b60118252701c9bd8dad95d139bd91951195c1bdcda5d607a1b6020830152565b604051906113e2604083610ff5565b600f82526e0e4dec6d6cae8a8ded6cadca48aa89608b1b6020830152565b6004602061140f61018b6111c4565b60405163e60b40bf60e01b815292839182906001600160a01b03165afa908115610342575f9161145a575b5061144361102b565b908181106114515750505f90565b6112a291611744565b90506020813d602011611484575b8161147560209383610ff5565b8101031261034d57515f61143a565b3d9150611468565b51906001600160a01b038216820361034d57565b5f546040516321f8a72160e01b81527f65dd923ddfc8d8ae6088f80077201d2403cbd565f0ba25e09841e2799ec90bb26004820152906020908290602490829060081c6001600160a01b03165afa908115610342575f916114ff575090565b90506020813d60201161152b575b8161151a60209383610ff5565b8101031261034d576112a29061148c565b3d915061150d565b5f546040516321f8a72160e01b815260048101929092526020908290602490829060081c6001600160a01b03165afa908115610342575f916114ff575090565b6115bc906040516101436030826020808201956f636f6e74726163742e6164647265737360801b87528051918291018484015e81015f838201520301601f198101835282610ff5565b6001600160a01b038116156115ce5790565b60405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081b9bdd08199bdd5b9960721b6044820152606490fd5b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b1561034d575f60049260405193848092634c752fe560e11b825234905af1918215610342576116699261166c575b5061179d565b50565b5f61167691610ff5565b5f611663565b5f5460405163bd02d0f560e01b8152786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b6004820152906020908290602490829060081c6001600160a01b03165afa908115610342575f916110a3575090565b908101908181116117305781106116eb5790565b60405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b908181116117585781039081116117305790565b60405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606490fd5b6040516323fd21a560e11b81525f916001600160a01b031690602081600481855afa908115610342575f916121bb575b50156112a5576117de61018b6111c4565b604051638ed8045360e01b81526001600160a01b039091169190602081600481865afa908115610342575f9161219c575b5015611d17579060049161182461018b612327565b6001600160a01b031661183561102b565b6020869360405196878092633b474a6560e01b82525afa948515611d0c578695611cd8575b5061186985949397969561236c565b926118776040519485610ff5565b848452601f196118868661236c565b01865b818110611c825750869283915081805b888210611a2e575b5050505050505090919293806118bb575b50505050600190565b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b15611a2a578491602483926040519485938492631df699e760e11b845260048401525af180156105bf57908491611a15575b505b828110156118b25760206119308284612384565b51015115611a10576119428183612384565b51516001600160a01b031660206119598385612384565b51015190803b15611a0c578590600460405180948193634814611360e01b83525af180156104e8579085916119f3575b50508061199860019284612384565b51516001600160a01b03167fa1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be9604060206119d28588612384565b51015181519081524260208201526001600160a01b0390931692a20161191c565b816119fd91610ff5565b611a0857835f611989565b8380fd5b8580fd5b6118b2565b81611a1f91610ff5565b610ace57825f61191a565b8480fd5b8015611b5e575b8015611b4a575f19019085158015611b38575b611b3357604051631d33eeb960e31b81529b60208d8c8180611a6d8a600483016123ac565b03918a5af19c8d15611b28578b9d611ac8575b509088999a9b9c876020611aa084611a9a846001986116d7565b9d612384565b510152611aad828c612384565b516001600160a01b039091169052979b9a9998970190611899565b909c506020813d8211611b20575b81611ae360209383610ff5565b81010312611b1c579088999a9b9c876020611aa084611a9a84611b0760019961148c565b9f5050505050505090919c9b9a99989c611a80565b8a80fd5b3d9150611ad6565b6040513d8d823e3d90fd5b6118a1565b5085611b448d85611744565b10611a48565b634e487b7160e01b8a52601160045260248afd5b50604080516304b5466b60e01b815291955090925082600481865afa8015611c775788928991611c2e575b5093826005811015611c1a578015611b33576020611bbb91604051809381926304a0030d60e21b8352600483016123ac565b03816001600160a01b038b165afa908115611c0f578a91611bde575b5094611a35565b90506020813d8211611c07575b81611bf860209383610ff5565b8101031261034d57515f611bd7565b3d9150611beb565b6040513d8c823e3d90fd5b634e487b7160e01b8a52602160045260248afd5b9250506040823d8211611c6f575b81611c4960409383610ff5565b81010312611c6b578151916005831015611c6757602001515f611b89565b8880fd5b8780fd5b3d9150611c3c565b6040513d8a823e3d90fd5b6040999596979899516040810181811067ffffffffffffffff821117611cc45790602092916040528a81528a8382015282828a01015201989796959498611889565b634e487b7160e01b8b52604160045260248bfd5b9094506020813d602011611d04575b81611cf460209383610ff5565b8101031261034d5751935f61185a565b3d9150611ce7565b6040513d88823e3d90fd5b611d2561018b949394612327565b604051633b474a6560e01b81526001600160a01b03909116929091602083600481845afa928315610342575f93612165575b50604051630d1a7ded60e21b815293602090859060049082906001600160a01b03165afa938415610342575f94612131575b50611d9484346122d2565b60046020611da987611da461102b565b6122d2565b93604051928380926378cda08360e11b82525afa908115610342575f916120f9575b50915f94611ddd6024938796956116d7565b918083116120f1575b508082116120e9575b506040519485938492637e0e497b60e01b845260048401525af1908115610342575f91612050575b50805180611e29575b50600193505050565b82611e339161225d565b6001600160a01b037f0000000000000000000000003bdc69c4e5e13e52a65f5583c23efb9636b469d61690813b1561034d575f91602483926040519485938492631df699e760e11b845260048401525af180156103425761203b575b5083805b8251821015611fb557611ea68284612384565b516001600160a01b0316803b15611fb157604051630d0e30db60e41b8152879081816004818a875af1801561039957611f9c575b505060206004916040519283809263d2ceebd160e01b82525afa908115611f91578791611f5f575b50611f0f906001926116d7565b91611f1a8185612384565b51604080518781524260208201526001600160a01b03909216917fa1811054b7d96716259cff0d366c2f6405951e0efe00c8db3e237cbf77fe7be99190a20190611e93565b90506020813d8211611f89575b81611f7960209383610ff5565b8101031261034d57516001611f02565b3d9150611f6c565b6040513d89823e3d90fd5b81611fa691610ff5565b611fb157865f611eda565b8680fd5b855494959460081c6001600160a01b03169350915050813b15610ace57829160448392604051948593849263ebb9d8c960e01b8452786465706f7369742e706f6f6c2e6e6f64652e62616c616e636560381b600485015260248401525af1801561039957612026575b808392611e20565b612031828092610ff5565b610166578061201e565b6120489194505f90610ff5565b5f925f611e8f565b90503d805f833e6120618183610ff5565b81019060208183031261034d5780519067ffffffffffffffff821161034d57019080601f8301121561034d5781516120988161236c565b926120a66040519485610ff5565b81845260208085019260051b82010192831161034d57602001905b8282106120d1575050505f611e17565b602080916120de8461148c565b8152019101906120c1565b90505f611def565b91505f611de6565b939290506020843d602011612129575b8161211660209383610ff5565b8101031261034d5792519192915f611dcb565b3d9150612109565b9093506020813d60201161215d575b8161214d60209383610ff5565b8101031261034d5751925f611d89565b3d9150612140565b9392506020843d602011612194575b8161218160209383610ff5565b8101031261034d57925191926020611d57565b3d9150612174565b6121b5915060203d602011610586576105788183610ff5565b5f61180f565b6121d4915060203d602011610586576105788183610ff5565b5f6117cd565b600160ff1b8110156121e95790565b60405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608490fd5b8115612249570490565b634e487b7160e01b5f52601260045260245ffd5b9081156112a5578082029180830482036117305761227b908361223f565b036122835790565b60405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608490fd5b9080156122e2576112a29161223f565b60405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606490fd5b60405190612336606083610ff5565b60218252601b60fa1b6040837f726f636b657444414f50726f746f636f6c53657474696e67734d696e69706f6f60208201520152565b67ffffffffffffffff81116110175760051b60200190565b80518210156123985760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b9190602083019260058210156123bf5752565b634e487b7160e01b5f52602160045260245ffd