solc-0.8.36-memorymasking-03 0xd86756dbb01e75a11aadacb75c8495759ed92033 via-ir-low-runs
8235 bytes
60a0806040525f196080526004361015610017575f80fd5b5f3560e01c90816306a2da3d146110925750806306fdde031461104c578063077f22b714611029578063095ea7b314610fb55780630c340a2414610f8657806318160ddd14610f6957806323b872dd14610e81578063313ce56714610e6657806339a7919f14610e3557806340c10f1914610d3b578063430bf08a14610d18578063456ee28614610cd95780635d36b19014610bbf5780635f5a857714610b84578063609350cd14610b515780636691cb3d14610b2e5780636b96be3914610af357806370a0823114610ac85780637a46a9c514610aab5780637d0d66ff14610a8e57806395d89b4114610a4c5780639d01fc72146105335780639dc29fac146104f9578063a9059cbb1461049b578063baa9c9db1461044a578063c2376dff14610431578063c7af3352146103fc578063cd6dc68714610321578063d38bfff414610299578063dd62ed3e1461024e578063e5c4fffe14610202578063e696393a146101e5578063f51b0fd4146101ca5763f9854bfc14610197575f80fd5b346101c65760203660031901126101c65760406101ba6101b5611233565b611765565b82519182526020820152f35b5f80fd5b346101c6575f3660031901126101c6576101e333611d5d565b005b346101c6575f3660031901126101c657602060a054604051908152f35b346101c65760203660031901126101c657606061021d611233565b60745181165f908152609d60205260409020549061023a90611bc7565b604051918252602082015260016040820152f35b346101c65760403660031901126101c657610267611233565b61026f611244565b6074519182165f908152609b60209081526040808320949093168252928352819020549051908152f35b346101c65760203660031901126101c6576102b2611233565b6102d360018060a01b035f516020611f515f395f51905f525416331461171c565b5f516020611f915f395f51905f528190555f516020611f515f395f51905f525460745191821691167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d5f80a3005b346101c65760403660031901126101c65761033a611233565b61035b60018060a01b035f516020611f515f395f51905f525416331461171c565b6074511680156103c257609c54607451811661038757602435609f556001600160a01b03191617609c55005b60405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260126024820152715a65726f207661756c74206164647265737360701b6044820152606490fd5b346101c6575f3660031901126101c657602060018060a01b035f516020611f515f395f51905f52541633146040519015158152f35b346101c6575f3660031901126101c6576101e333611be9565b346101c65760203660031901126101c6576101e3610466611233565b61048760018060a01b035f516020611f515f395f51905f525416331461171c565b61049660745182161515611328565b611d5d565b346101c65760403660031901126101c6576104b4611233565b607451811690602435906104d59082906104cf8515156113b9565b336118cb565b6040519081525f516020611f315f395f51905f5260203392a3602060405160018152f35b346101c65760403660031901126101c6576101e3610515611233565b61052a60018060a01b03609c54163314611400565b60243590611685565b346101c65760403660031901126101c65761054c611233565b610554611244565b5f516020611f515f395f51905f525460745116331480156109d1575b610579906112cb565b607451821691821561098c57607451821680156109495780841461090a575f81815260a560205260409020546074511615806108f1575b806108d8575b806108bf575b1561086e57835f5260a260205260ff60405f205416815f5260a260205260ff60405f20541690600581101590816107ef578015918215610861575b8215610850575b50501561081057600581101590816107ef578015918215610803575b82156107de575b5050156107a0578361075a61075561074f610760947f31e39e4bb9df9d4143551c8a3a4798fc19b0854768570ce84d966f6adffd01a3985f5260a160205260405f205415610792575b805f5260a160205260405f2054610784575b61074961074361068b896115c2565b966106958b6115c2565b93805f52609d6020526106b56106b060405f2054968b611469565b6117b8565b5f83815260a46020908152604080832080546001600160a01b0319908116871790915585845260a5835281842080549091168717905594825260a2808252858320805460ff1990811660031790915560a18352868420670de0b6b3a76400009055609d8084528785208f905595845290825285832080549091166004179055929092529190208190556117fe565b916117fe565b9061136f565b926117fe565b611675565b90611880565b61077f6040519283928360745191821681529116602082015260400190565b0390a1005b61078d88611d5d565b61067c565b61079b87611be9565b61066a565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726562617365537461746520746f60501b6044820152606490fd5b9091506107ef576002148580610621565b634e487b7160e01b5f52602160045260245ffd5b506001811491505f61061a565b60405162461bcd60e51b8152602060048201526018602482015277496e76616c69642072656261736553746174652066726f6d60401b6044820152606490fd5b9091506107ef5760021486806105fe565b506001811491505f6105f7565b60405162461bcd60e51b8152602060048201526024808201527f426c6f636b6564206279206578697374696e67207969656c642064656c6567616044820152633a34b7b760e11b6064820152608490fd5b505f84815260a4602052604090205460745116156105bc565b505f84815260a5602052604090205460745116156105b6565b505f81815260a4602052604090205460745116156105b0565b60405162461bcd60e51b815260206004820152601760248201527621b0b73737ba103232b632b3b0ba32903a379039b2b63360491b6044820152606490fd5b60405162461bcd60e51b815260206004820152601b60248201527a16995c9bc81d1bc81859191c995cdcc81b9bdd08185b1b1bddd959602a1b6044820152606490fd5b60405162461bcd60e51b815260206004820152601d60248201527f5a65726f2066726f6d2061646472657373206e6f7420616c6c6f7765640000006044820152606490fd5b50609c5460405163570d8e1d60e01b81529060209082906004908290607451165afa8015610a4157610579915f91610a12575b506074511633149050610570565b610a34915060203d602011610a3a575b610a2c818361127f565b8101906112b1565b84610a04565b503d610a22565b6040513d5f823e3d90fd5b346101c6575f3660031901126101c657610a8a604051610a6d60408261127f565b600481526309e8aa8960e31b602082015260405191829182611255565b0390f35b346101c6575f3660031901126101c6576020609e54604051908152f35b346101c6575f3660031901126101c6576020609f54604051908152f35b346101c65760203660031901126101c6576020610aeb610ae6611233565b6115c2565b604051908152f35b346101c65760203660031901126101c657607451610b0f611233565b165f5260a5602052602060018060a01b0360405f205416604051908152f35b346101c6575f3660031901126101c6576020633b9aca00609f5404604051908152f35b346101c65760203660031901126101c657607451610b6d611233565b165f5260a1602052602060405f2054604051908152f35b346101c65760203660031901126101c657607451610ba0611233565b165f5260a4602052602060018060a01b0360405f205416604051908152f35b346101c6575f3660031901126101c6575f516020611f915f395f51905f5254607451163303610c7b573315610c39575f516020611f515f395f51905f52543390607451167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a5f80a3335f516020611f515f395f51905f5255005b60405162461bcd60e51b815260206004820152601a6024820152794e657720476f7665726e6f72206973206164647265737328302960301b6044820152606490fd5b60405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b6064820152608490fd5b346101c65760203660031901126101c657607451610cf5611233565b165f5260a260205260ff60405f20541660405160058210156107ef576020918152f35b346101c6575f3660031901126101c657609c546040516074519091168152602090f35b346101c65760403660031901126101c657610d54611233565b602435610d6c60018060a01b03609c54163314611400565b6074518216918215610df55761075a610d8e91610d88846117fe565b906118fc565b610d9a81609a54611469565b609a8190556070511115610dc3575f516020611f315f395f51905f5260205f92604051908152a3005b60405162461bcd60e51b815260206004820152600a6024820152694d617820737570706c7960b01b6044820152606490fd5b60405162461bcd60e51b81526020600482015260186024820152774d696e7420746f20746865207a65726f206164647265737360401b6044820152606490fd5b346101c65760203660031901126101c657610e5b60018060a01b03609c54163314611400565b6101e3600435611476565b346101c6575f3660031901126101c657602060405160128152f35b346101c65760603660031901126101c657610e9a611233565b610ea2611244565b60745181169160443591610eb78415156113b9565b60745182165f818152609b6020908152604080832033845290915290205490939092838211610f2f5781602093610f1d925f516020611f315f395f51905f5296885f52609b875260405f2060018060a01b0333165f5287528360405f20910390556118cb565b604051908152a3602060405160018152f35b60405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b6044820152606490fd5b346101c6575f3660031901126101c6576020609a54604051908152f35b346101c6575f3660031901126101c6575f516020611f515f395f51905f52546040516074519091168152602090f35b346101c65760403660031901126101c657610fce611233565b335f818152609b60209081526040808320607451909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346101c6575f3660031901126101c6576020633b9aca00609e5404604051908152f35b346101c6575f3660031901126101c657610a8a60405161106d60408261127f565b600c81526b27b934b3b4b71022ba3432b960a11b602082015260405191829182611255565b346101c65760203660031901126101c6576110ab611233565b5f516020611f515f395f51905f52546074511633149182156111c5575b506110e05f516020611fb15f395f51905f52926112cb565b6074518181165f81815260a4602052604090205490929161110391161515611328565b5f82815260a4602052604090205460745116916107609061075a610743611129856115c2565b92610749610743611139896115c2565b92895f52609d60205261115060405f2054946117b8565b5f8b815260a56020908152604080832080546001600160a01b031990811690915594835260a48252808320805490951690945560a2808252848320805460ff19908116600117909155609d8084528685208d90558f8552918352858420805490911660021790559052919091208190556117fe565b609c5463570d8e1d60e01b825290925060209083906004908290607451165afa918215610a41575f516020611fb15f395f51905f52926110e0915f91611214575b5060745116331492506110c8565b61122d915060203d602011610a3a57610a2c818361127f565b84611206565b60043590607451821682036101c657565b60243590607451821682036101c657565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b601f909101601f191681019060685182119082101761129d57604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126101c65751607451811681036101c65790565b156112d257565b60405162461bcd60e51b815260206004820152602860248201527f43616c6c6572206973206e6f74207468652053747261746567697374206f722060448201526723b7bb32b93737b960c11b6064820152608490fd5b1561132f57565b60405162461bcd60e51b815260206004820152601860248201527716995c9bc81859191c995cdcc81b9bdd08185b1b1bddd95960421b6044820152606490fd5b81810392915f13801582851316918412161761138757565b634e487b7160e01b5f52601160045260245ffd5b81156113a5570490565b634e487b7160e01b5f52601260045260245ffd5b156113c057565b60405162461bcd60e51b81526020600482015260186024820152775472616e7366657220746f207a65726f206164647265737360401b6044820152606490fd5b1561140757565b60405162461bcd60e51b815260206004820152601760248201527610d85b1b195c881a5cc81b9bdd081d1a194815985d5b1d604a1b6044820152606490fd5b6040919493926060820195825260208201520152565b9190820391821161138757565b9190820180921161138757565b609a5480156115825781811461155c575060705181111561155757506070515b80609a556114a660a0548261145c565b609e5490670de0b6b3a76400008202828104670de0b6b3a7640000148315171561138757816114d491611469565b5f19810191908211611387576114e99161139b565b9182609f558215611517576115125f516020611f715f395f51905f529360405193849384611446565b0390a1565b60405162461bcd60e51b8152602060048201526018602482015277496e76616c6964206368616e676520696e20737570706c7960401b6044820152606490fd5b611496565b5f516020611f715f395f51905f529150609e5490611512609f5460405193849384611446565b60405162461bcd60e51b815260206004820152601860248201527743616e6e6f7420696e637265617365203020737570706c7960401b6044820152606490fd5b60745181165f81815260a2602052604090205460ff169160058310156107ef576003831461166357815f52609d60205260405f205490670de0b6b3a7640000820291808304670de0b6b3a764000014901517156113875760049161162861162e92611bc7565b9061139b565b9214611638575090565b5f90815260a56020908152604080832054607451168352609d9091529020546116609161145c565b90565b5090505f52609d60205260405f205490565b600160ff1b8114611387575f0390565b9060745182169081156116da5780156116d5576020816116bd61075a5f96610d886107555f516020611f315f395f51905f52976117fe565b6116c981609a5461145c565b609a55604051908152a3565b505050565b60405162461bcd60e51b815260206004820152601a6024820152794275726e2066726f6d20746865207a65726f206164647265737360301b6044820152606490fd5b1561172357565b60405162461bcd60e51b815260206004820152601a60248201527921b0b63632b91034b9903737ba103a34329023b7bb32b93737b960311b6044820152606490fd5b9061176f82611bc7565b91676765c793fa10079d601b1b830361179857607451165f908152609d60205260409020549190565b60018060a01b03165f52609d602052633b9aca008060405f205404920490565b609f549081810291818304149015171561138757670de0b6b3a764000081019081811161138757670de0b6b3a763ffff0190811161138757670de0b6b3a7640000900490565b6001600160ff1b03811161180f5790565b60405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608490fd5b9190915f838201938412911290801582169115161761138757565b806118b0575b508061188f5750565b6118a66118ab916118a160a0546117fe565b611865565b611ee2565b60a055565b6118a66118c2916118a1609e546117fe565b609e555f611886565b6118fa926118f46118f4610d88946118ec61075a95610d88610755876117fe565b9690946117fe565b92611865565b565b90915f915f9260018060a01b03821694855f5260a260205260ff60405f2054169261192e611929826115c2565b6117fe565b5f6119398483611865565b12611b82576118a68361194b92611865565b9360058110156107ef57600381036119c6575050505f85815260a460205260409020546074511690506119896106b083611984846115c2565b611469565b916119ab611996846117fe565b835f52609d60205261074960405f20546117fe565b955f52609d60205260405f20555f52609d60205260405f2055565b600403611a2e575050506106b06119fe91855f5260a560205260018060a01b0360405f2054165f52609d60205260405f205490611469565b611a1f611a0a826117fe565b855f52609d60205261074960405f20546117fe565b935f52609d60205260405f2055565b809692963b8015908115611af2575b501580611ad2575b80611abe575b611aaf575b505f82815260a16020526040902054948515611aa1575093670de0b6b3a763ffff1901611a86575b5f52609d60205260405f2055565b805f5260a1602052670de0b6b3a764000060405f2055611a78565b94505093506119fe906117b8565b611ab890611be9565b5f611a50565b50825f5260a160205260405f205415611a4b565b50825f5260a260205260ff60405f20541660058110156107ef5715611a45565b601791501480611b03575b5f611a3d565b50803b606851811161129d57604051611b26601f8301601f19166020018261127f565b81815260208101915f83853c5190516001600160e81b03198116919060038210611b63575b50506001600160e81b03191661ef0160f01b14611afd565b6001600160e81b0319600392830390921b82901b161690505f80611b4b565b60405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606490fd5b607451165f90815260a160205260409020548015611be25790565b50609f5490565b60745181165f81815260a16020526040902054909190611d1d57815f5260a260205260ff60405f20541660058110156107ef5760028114908115611d14575b5015611cbb5781611cb26020927f201ace89ad3f5ab7428b91989f6a50d1998791c7b94a0fa812fd64a57687165e945f52609d845261075a610743610755611c7460405f2054946115c2565b93865f5260a2885260405f20600160ff19825416179055865f5260a18852670de0b6b3a764000060405f2055865f52609d88528460405f20556117fe565b604051908152a1565b60405162461bcd60e51b815260206004820152602b60248201527f4f6e6c79207374616e64617264207265626173696e67206163636f756e74732060448201526a18d85b881bdc1d081bdd5d60aa1b6064820152608490fd5b9050155f611c28565b60405162461bcd60e51b81526020600482015260186024820152774163636f756e74206d757374206265207265626173696e6760401b6044820152606490fd5b611d66816115c2565b9060018060a01b031690815f5260a160205260405f205415801590611ece575b15611e8a57815f5260a260205260ff60405f20541660058110156107ef5760018114908115611e81575b5015611e25577f19a249fa2050bac8314ac10e3ad420bd9825574bf750f58810c3c7adfc7b1c6f91611cb28261075a61075561074f611df06020976117b8565b865f5260a2885260405f20600260ff19825416179055865f5260a188525f6040812055865f52609d88528060405f20556117fe565b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207374616e64617264206e6f6e2d7265626173696e67206163636f7560448201526d373a399031b0b71037b83a1034b760911b6064820152608490fd5b9050155f611db0565b60405162461bcd60e51b815260206004820152601c60248201527b4163636f756e74206d757374206265206e6f6e2d7265626173696e6760201b6044820152606490fd5b50815f52609d60205260405f205415611d86565b5f8112611eec5790565b606460405162461bcd60e51b815260206004820152602060248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4a41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e25723544c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51dba4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd3a264697066735822122042ff00425c31d2a06670176bdf7cb818d8570e5ad9caa2b446efc633e719475c64736f6c637827302e382e33362d6d656d6f72796d61736b696e672d30332b636f6d6d69742e62633866633738330058