solc-0.8.36-fakeopcode 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d via-ir-high-runs

10771 bytes

60806040526004361015610011575f80fd5b5f3560e01c8063018a2c371461026457806301ffc9a71461025f57806306fdde031461025a578063081812fc14610255578063095ea7b314610250578063109695231461024b57806318160ddd1461024657806318e20a381461024157806323b872dd1461023c5780632f745c591461023757806334918dfd146102325780633ccfd60b1461022d57806342842e0e146102285780634f6ccce71461022357806355f804b31461021e578063571dff3b14610219578063607e20e3146102145780636352211e1461020f5780636c0360eb1461020a57806370a0823114610205578063715018a6146102005780637a3f451e146101fb5780637d17fcbe146101f65780638da5cb5b146101f157806395d89b41146101ec578063a22cb465146101e7578063a723533e146101e2578063b0f67427146101dd578063b88d4fde146101d8578063bb8a16bd146101d3578063c87b56dd146101ce578063cb774d47146101c9578063e36d6498146101c4578063e985e9c5146101bf578063e9866550146101ba578063eb8d2444146101b55763f2fde38b146101b0575f80fd5b611588565b611566565b61149e565b61142e565b611411565b6113f4565b6113d5565b6113b8565b611358565b611300565b611241565b611121565b61107c565b61104d565b611014565b610ff2565b610f6c565b610eb1565b610e82565b610e64565b610dbf565b610b96565b610aa0565b6109fa565b6109d1565b610979565b61091c565b61084a565b610821565b6107ca565b6107ad565b6106ab565b610492565b610437565b61033f565b6102c3565b3461029557602060031936011261029557600a5460043590610290906001600160a01b031633146116af565b601055005b5f80fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081160361029557565b34610295576020600319360112610295576004356102e081610299565b60e01c63ffffffff1660e01b5f525f602052602060405f205460ff166040519015158152f35b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b90602061033c928181520190610306565b90565b34610295575f600319360112610295576040515f60065461035f81610bdd565b80845290600181169081156103f55750600114610397575b61039383610387818503826105fa565b6040519182918261032b565b0390f35b60065f9081527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f939250905b8082106103db57509091508101602001610387610377565b9192600181602092548385880101520191019092916103c3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208086019190915291151560051b840190910191506103879050610377565b346102955760206003193601126102955760206104556004356116fa565b604051906001600160a01b03168152f35b60043590816001600160a01b0316820361029557565b60243590816001600160a01b0316820361029557565b34610295576040600319360112610295576104ab610466565b6024356104b781611953565b91826001600160a01b031680826001600160a01b031614610542576104f2936104ed91339081149182156104f4575b5050611796565b611dac565b005b6001600160a01b03165f90815260056020526040902061053b925061053491905b906001600160a01b03166001600160a01b03165f5260205260405f2090565b5460ff1690565b5f806104e6565b608460405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105f557604052565b6105ac565b90601f601f19910116810190811067ffffffffffffffff8211176105f557604052565b67ffffffffffffffff81116105f557601f01601f191660200190565b9291926106458261061d565b9161065360405193846105fa565b829481845281830111610295578281602093845f960137010152565b6020600319820112610295576004359067ffffffffffffffff821161029557806023830112156102955781602461033c93600401359101610639565b34610295576106b93661066f565b600a546106d0906001600160a01b031633146116af565b805167ffffffffffffffff81116105f5576106f5816106f0600b54610bdd565b611824565b602091601f821160011461073257610722925f9183610727575b50505f198260011b9260031b1c19161790565b600b55005b015190505f8061070f565b600b5f52601f198216927f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9915f5b8581106107955750836001951061077d575b505050811b01600b55005b01515f1960f88460031b161c191690555f8080610772565b91926020600181928685015181550194019201610760565b34610295575f600319360112610295576020600254604051908152f35b34610295575f600319360112610295576020601054604051908152f35b600319606091011261029557600435806001600160a01b031681036102955790602435806001600160a01b03168103610295579060443590565b34610295576104f2610832366107e7565b916108456108408433611e25565b6118e2565b611f90565b3461029557604060031936011261029557610863610466565b602435906001600160a01b03166001600160a01b03165f52600160205260405f2081815411156108b2576103939161089a91612541565b90549060031b1c604051918291829190602083019252565b608460405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60448201527f64730000000000000000000000000000000000000000000000000000000000006064820152fd5b34610295575f60031936011261029557600a54610943906001600160a01b031633146116af565b600f547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060ff8260ff161516911617600f555f80f35b34610295575f60031936011261029557600a545f9081908190819033906109aa906001600160a01b031682146116af565b3031908282156109c8575bf1156109bd57005b6040513d5f823e3d90fd5b506108fc6109b5565b34610295576104f26109e2366107e7565b90604051926109f26020856105fa565b5f8452611c17565b3461029557602060031936011261029557600435806002541115610a3657610a2461039391612556565b50546040519081529081906020820190565b608460405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e60448201527f64730000000000000000000000000000000000000000000000000000000000006064820152fd5b3461029557610aae3661066f565b600a54610ac5906001600160a01b031633146116af565b805167ffffffffffffffff81116105f557610aea81610ae5600954610bdd565b611883565b602091601f8211600114610b1b57610b16925f91836107275750505f198260011b9260031b1c19161790565b600955005b60095f52601f198216927f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af915f5b858110610b7e57508360019510610b66575b505050811b01600955005b01515f1960f88460031b161c191690555f8080610b5b565b91926020600181928685015181550194019201610b49565b34610295575f60031936011261029557602060405160148152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b90600182811c92168015610c24575b6020831014610bf757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610bec565b604051905f8260095491610c4183610bdd565b8083529260018116908115610cc65750600114610c67575b610c65925003836105fa565b565b5060095f90815290917f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b818310610caa575050906020610c6592820101610c59565b6020919350806001915483858901015201910190918492610c92565b60209250610c659491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101610c59565b9060405191825f825492610d1684610bdd565b8084529360018116908115610d7f5750600114610d3b575b50610c65925003836105fa565b90505f9291925260205f20905f915b818310610d63575050906020610c65928201015f610d2e565b6020919350806001915483858901015201910190918492610d4a565b60209350610c659592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f610d2e565b34610295575f600319360112610295576040515f600b54610ddf81610bdd565b80845290600181169081156103f55750600114610e065761039383610387818503826105fa565b600b5f9081527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9939250905b808210610e4a57509091508101602001610387610377565b919260018160209254838588010152019101909291610e32565b34610295576020600319360112610295576020610455600435611953565b34610295575f60031936011261029557610393610e9d610c2e565b604051918291602083526020830190610306565b3461029557602060031936011261029557610eca610466565b6001600160a01b03168015610f02576001600160a01b03165f52600160205261039360405f2054604051918291829190602083019252565b608460405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152fd5b34610295575f60031936011261029557600a547fffffffffffffffffffffffff00000000000000000000000000000000000000006001600160a01b03808316610fb63382146116af565b5f9081906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a316911617600a555f80f35b34610295575f60031936011261029557602060405167011c37937e0800008152f35b34610295575f60031936011261029557600a5461103b906001600160a01b031633146116af565b611047600d5415611a0b565b43600c55005b34610295575f600319360112610295576020600a546001600160a01b0316604051906001600160a01b03168152f35b34610295575f600319360112610295576040515f60075461109c81610bdd565b80845290600181169081156103f557506001146110c35761039383610387818503826105fa565b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b80821061110757509091508101602001610387610377565b9192600181602092548385880101520191019092916110ef565b346102955760406003193601126102955761113a610466565b60243590811515820361029557339081906001600160a01b0381168083146111fd576111dc856111ac6111f8946105157f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31976001600160a01b03166001600160a01b03165f52600560205260405f2090565b9060ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0083541691151516179055565b60405194151585526001600160a01b0316939081906020820190565b0390a3005b606460405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152fd5b60206003193601126102955760043561126461125f600f5460ff1690565b611a56565b6112716014821115611aa1565b61128a61128082600254612135565b600e541015611b12565b61129e61129682612149565b341015611b83565b5f5b8181106112d957600c5415806112c0575b6112b757005b6104f243600c55565b50600254600e5414806112b157506010544210156112b1565b600190600254600e5481106112f0575b50016112a0565b6112fa90336121d9565b5f6112e9565b34610295575f60031936011261029557600a54611327906001600160a01b031633146116af565b6002545f5b601e811061133657005b808201908183116113535761134d600192336121d9565b0161132c565b611bce565b3461029557608060031936011261029557611371610466565b61137961047c565b906044356064359267ffffffffffffffff84116102955736602385011215610295576113b26104f2943690602481600401359101610639565b92611c17565b34610295575f600319360112610295576020600e54604051908152f35b3461029557602060031936011261029557610393610e9d600435611c57565b34610295575f600319360112610295576020600d54604051908152f35b34610295575f600319360112610295576020600c54604051908152f35b3461029557604060031936011261029557602061149061144c610466565b61145461047c565b906001600160a01b03166001600160a01b03165f526005835260405f20906001600160a01b03166001600160a01b03165f5260205260405f2090565b5460ff166040519015158152f35b34610295575f600319360112610295576114ba600d5415611a0b565b600c548015611522576114d46114d991600e549040611d67565b600d55565b60ff6114e7600c54436124d4565b11611504575b600d5480156114f857005b6114d46104f2916120dc565b61151d6114d461151343611d9e565b40600e5490611d67565b6114ed565b606460405162461bcd60e51b815260206004820152602060248201527f5374617274696e6720696e64657820626c6f636b206d757374206265207365746044820152fd5b34610295575f600319360112610295576020600f5460ff166040519015158152f35b34610295576020600319360112610295576115a1610466565b600a54906115b96001600160a01b03831633146116af565b6001600160a01b0381168015611645576104f2926001600160a01b0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36001600160a01b037fffffffffffffffffffffffff0000000000000000000000000000000000000000600a5416916001600160a01b03166001600160a01b03161617600a55565b608460405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b156116b657565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b61170f815f52600360205260405f2054151590565b1561172c575f52600460205260405f20546001600160a01b031690565b608460405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152fd5b1561179d57565b608460405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152fd5b91611820918354905f199060031b92831b921b19161790565b9055565b90601f8211611831575050565b80821161183c575050565b600b5f5260205f206020601f830160051c921061187b575b81601f9101920160051c03905f5b82811061186e57505050565b5f82820155600101611862565b5f9150611854565b90601f8211611890575050565b80821161189b575050565b60095f5260205f206020601f830160051c92106118da575b81601f9101920160051c03905f5b8281106118cd57505050565b5f828201556001016118c1565b5f91506118b3565b156118e957565b608460405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152fd5b604051906119626060836105fa565b602982527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460208301527f656e7420746f6b656e000000000000000000000000000000000000000000000060408301525f52600360205260405f20549081156119eb57505f198101908111611353576119dc600191612556565b5001546001600160a01b031690565b611a079060405191829162461bcd60e51b83526004830161032b565b0390fd5b15611a1257565b606460405162461bcd60e51b815260206004820152601d60248201527f5374617274696e6720696e64657820697320616c7265616479207365740000006044820152fd5b15611a5d57565b606460405162461bcd60e51b815260206004820152601f60248201527f53616c65206d7573742062652061637469766520746f206d696e7420417065006044820152fd5b15611aa857565b608460405162461bcd60e51b815260206004820152602160248201527f43616e206f6e6c79206d696e7420323020746f6b656e7320617420612074696d60448201527f65000000000000000000000000000000000000000000000000000000000000006064820152fd5b15611b1957565b608460405162461bcd60e51b815260206004820152602860248201527f507572636861736520776f756c6420657863656564206d617820737570706c7960448201527f206f6620417065730000000000000000000000000000000000000000000000006064820152fd5b15611b8a57565b606460405162461bcd60e51b815260206004820152601f60248201527f45746865722076616c75652073656e74206973206e6f7420636f7272656374006044820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b603001908160301161135357565b906001820180921161135357565b610c6593611c409390929091611c306108408433611e25565b611c3b838383611f90565b612636565b6122e0565b805191908290602001825e015f815290565b611c6c815f52600360205260405f2054151590565b15611cfd57611c8b611c86825f52600860205260405f2090565b610d03565b90611c94610c2e565b91825115611cf7578051611cda5750611cc691611ccc611cb661033c936123e5565b6040519485936020850190611c45565b90611c45565b03601f1981018352826105fa565b61033c915091611ccc611cc6936040519485936020850190611c45565b91505090565b608460405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201527f6e6578697374656e7420746f6b656e00000000000000000000000000000000006064820152fd5b8115611d71570690565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b905f19820191821161135357565b5f82815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039092169182179055611df682611953565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4565b611e3a825f52600360205260405f2054151590565b15611eb657611e4882611953565b816001600160a01b0316816001600160a01b03168114938415611e98575b50508215611e7357505090565b6001600160a01b03165f90815260056020526040902061033c92506105349190610515565b611ea4919294506116fa565b6001600160a01b031614915f80611e66565b608460405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201527f697374656e7420746f6b656e00000000000000000000000000000000000000006064820152fd5b15611f2757565b608460405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b611f9983611953565b91816001600160a01b031680936001600160a01b031603612072576001600160a01b038116916120389190612003908690611ffe90611fde835f6104ed8a1515611f20565b6001600160a01b03166001600160a01b03165f52600160205260405f2090565b612747565b506120318561202c836001600160a01b03166001600160a01b03165f52600160205260405f2090565b6127e5565b508461252c565b506001600160a01b0316906001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4565b608460405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201527f73206e6f74206f776e00000000000000000000000000000000000000000000006064820152fd5b60018101908181116113535781106120f15790565b606460405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152fd5b908101908181116113535781106120f15790565b8067011c37937e080000029067011c37937e0800008204808203611353570361216f5790565b608460405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60448201527f77000000000000000000000000000000000000000000000000000000000000006064820152fd5b6040516121e76020826105fa565b5f8082526001600160a01b03831693909283851561229c5782611c4095610c659761222c612227612223855f52600360205260405f2054151590565b1590565b6128f6565b6122548361202c876001600160a01b03166001600160a01b03165f52600160205260405f2090565b5061225f858461252c565b506001600160a01b0316906001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4612636565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b156122e757565b608460405162461bcd60e51b815260206004820152603260248201526123556044820160207f63656976657220696d706c656d656e7465720000000000000000000000000000917f4552433732313a207472616e7366657220746f206e6f6e20455243373231526581520152565bfd5b5f1981146113535760010190565b9061236f8261061d565b61237c60405191826105fa565b828152601f1961238c829461061d565b0190602036910137565b8015611353575f190190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9081518110156123e0570160200190565b6123a2565b908115612497575f82805b61247c575061240761240182612365565b91611d9e565b92805b61241357509150565b6124769061245761242f612429600a8406611bfb565b60ff1690565b60f81b7fff000000000000000000000000000000000000000000000000000000000000001690565b9461246e61246482612396565b965f1a91856123cf565b53600a900490565b8061240a565b9061248961249191612357565b91600a900490565b806123f0565b90506040516124a76040826105fa565b600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b908181116124e85781039081116113535790565b606460405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152fd5b61033c916001600160a01b0316906002612854565b80548210156123e0575f5260205f2001905f90565b6002548110156123e05760025f5260205f209060011b01905f90565b80548210156123e0575f5260205f209060011b01905f90565b909260809261033c95946001600160a01b031683526001600160a01b0316602083015260408201528160608201520190610306565b604051906125cf6060836105fa565b603282527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560208301527f63656976657220696d706c656d656e74657200000000000000000000000000006040830152565b90816020910312610295575161033c81610299565b91813b156126eb576040517f150b7a020000000000000000000000000000000000000000000000000000000060208201526126a494612695949192612687928492611ccc929091336024860161258b565b61268f6125c0565b91612941565b60208082518301019101612621565b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490565b50505050600190565b8054801561271a575f19019061270a8282612541565b5f1982549160031b1b1916905555565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b906001820190805f528160205260405f2054918215155f146127dd575f1983019283116113535783545f19810190811161135357846127d7946127c46127b56127946127ca955f9a612541565b90549060031b1c926127b0846127aa8388612541565b90611807565b611c09565b9185905f5260205260405f2090565b556126f4565b905f5260205260405f2090565b55600190565b505050505f90565b6001810190825f528160205260405f2054155f1461284d578054680100000000000000008110156105f55761283a612824826001879401855584612541565b81939154905f199060031b92831b921b19161790565b905554915f5260205260405f2055600190565b5050505f90565b91906001830192815f528360205260405f205480155f146128d2575060405161287c816105d9565b828152602081019384528154680100000000000000008110156105f5578060016128a99201845583612572565b9190916128cd576127d794600191518355519101555492905f5260205260405f2090565b610bb1565b809394505f1991925001918211611353576001916128ef91612572565b5001555f90565b156128fd57565b606460405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152fd5b9190823b15612990575f8161033c948260208195519301915af13d15612988573d9061296c8261061d565b9161297a60405193846105fa565b82523d5f602084013e6129d4565b6060906129d4565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b909190156129e0575090565b8151156129f05750805190602001fd5b611a079060405191829162461bcd60e51b8352602060048401818152019061030656