solc-0.8.36-memorymasking-03 0xd86756dbb01e75a11aadacb75c8495759ed92033 via-ir

8335 bytes

60a0806040525f196080526004361015610017575f80fd5b5f3560e01c90816306a2da3d146110c95750806306fdde0314611083578063077f22b714611060578063095ea7b314610fec5780630c340a2414610fbd57806318160ddd14610fa057806323b872dd14610eb8578063313ce56714610e9d57806339a7919f14610e6c57806340c10f1914610d6e578063430bf08a14610d4b578063456ee28614610d0c5780635d36b19014610bdc5780635f5a857714610ba1578063609350cd14610b6e5780636691cb3d14610b4b5780636b96be3914610b1057806370a0823114610ae55780637a46a9c514610ac85780637d0d66ff14610aab57806395d89b4114610a695780639d01fc72146105465780639dc29fac1461050c578063a9059cbb146104ae578063baa9c9db1461045d578063c2376dff14610444578063c7af33521461040f578063cd6dc68714610334578063d38bfff414610299578063dd62ed3e1461024e578063e5c4fffe14610202578063e696393a146101e5578063f51b0fd4146101ca5763f9854bfc14610197575f80fd5b346101c65760203660031901126101c65760406101ba6101b5611298565b61181c565b82519182526020820152f35b5f80fd5b346101c6575f3660031901126101c6576101e333611e20565b005b346101c6575f3660031901126101c657602060a054604051908152f35b346101c65760203660031901126101c657606061021d611298565b60745181165f908152609d60205260409020549061023a90611c85565b604051918252602082015260016040820152f35b346101c65760403660031901126101c657610267611298565b61026f6112a9565b6074519182165f908152609b60209081526040808320949093168252928352819020549051908152f35b346101c65760203660031901126101c6576102b2611298565b6102d360018060a01b035f5160206120155f395f51905f52541633146117d0565b7f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db8190555f5160206120155f395f51905f525460745191821691167fa39cc5eb22d0f34d8beaefee8a3f17cc229c1a1d1ef87a5ad47313487b1c4f0d5f80a3005b346101c65760403660031901126101c65761034d611298565b61036e60018060a01b035f5160206120155f395f51905f52541633146117d0565b6074511680156103d557609c54607451811661039a57602435609f556001600160a01b03191617609c55005b60405162461bcd60e51b8152602060048201526013602482015272105b1c9958591e481a5b9a5d1a585b1a5e9959606a1b6044820152606490fd5b60405162461bcd60e51b81526020600482015260126024820152715a65726f207661756c74206164647265737360701b6044820152606490fd5b346101c6575f3660031901126101c657602060018060a01b035f5160206120155f395f51905f52541633146040519015158152f35b346101c6575f3660031901126101c6576101e333611ca7565b346101c65760203660031901126101c6576101e3610479611298565b61049a60018060a01b035f5160206120155f395f51905f52541633146117d0565b6104a960745182161515611391565b611e20565b346101c65760403660031901126101c6576104c7611298565b607451811690602435906104e89082906104e2851515611427565b33611983565b6040519081525f516020611ff55f395f51905f5260203392a3602060405160018152f35b346101c65760403660031901126101c6576101e3610528611298565b61053d60018060a01b03609c54163314611473565b60243590611736565b346101c65760403660031901126101c65761055f611298565b6105676112a9565b5f5160206120155f395f51905f525460745116331480156109ee575b61058c90611334565b60745182169182156109a957607451821680156109645780841461091f575f81815260a56020526040902054607451161580610906575b806108ed575b806108d4575b1561088357835f5260a260205260ff60405f205416815f5260a260205260ff60405f20541690600581101590816107ff578015918215610876575b8215610865575b50501561082057600581101590816107ff578015918215610813575b82156107ee575b5050156107b0578361077561077061076a61077b947f31e39e4bb9df9d4143551c8a3a4798fc19b0854768570ce84d966f6adffd01a3985f5260a160205260405f2054156107a2575b805f5260a160205260405f2054610794575b61076461075e61069e89611673565b966106a88b611673565b93805f52609d6020526106c86106c360405f2054968b6114cc565b611870565b91805f5260a460205260405f2082606c5160a01b825416179055815f5260a560205260405f2081606c5160a01b825416179055805f5260a260205260405f20600360ff19825416179055805f5260a1602052670de0b6b3a764000060405f20555f52609d6020528860405f2055805f5260a260205260405f20600460ff198254161790555f52609d6020528060405f20556118b6565b916118b6565b906113dd565b926118b6565b611726565b90611938565b60408051607451928316815292909116602083015290a1005b61079d88611e20565b61068f565b6107ab87611ca7565b61067d565b60405162461bcd60e51b8152602060048201526016602482015275496e76616c696420726562617365537461746520746f60501b6044820152606490fd5b9091506107ff576002148580610634565b634e487b7160e01b5f52602160045260245ffd5b506001811491505f61062d565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c69642072656261736553746174652066726f6d00000000000000006044820152606490fd5b9091506107ff576002148680610611565b506001811491505f61060a565b60405162461bcd60e51b8152602060048201526024808201527f426c6f636b6564206279206578697374696e67207969656c642064656c6567616044820152633a34b7b760e11b6064820152608490fd5b505f84815260a4602052604090205460745116156105cf565b505f84815260a5602052604090205460745116156105c9565b505f81815260a4602052604090205460745116156105c3565b60405162461bcd60e51b815260206004820152601760248201527f43616e6e6f742064656c656761746520746f2073656c660000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601b60248201527f5a65726f20746f2061646472657373206e6f7420616c6c6f77656400000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601d60248201527f5a65726f2066726f6d2061646472657373206e6f7420616c6c6f7765640000006044820152606490fd5b50609c5460405163570d8e1d60e01b81529060209082906004908290607451165afa8015610a5e5761058c915f91610a2f575b506074511633149050610583565b610a51915060203d602011610a57575b610a4981836112e4565b81019061131a565b84610a21565b503d610a3f565b6040513d5f823e3d90fd5b346101c6575f3660031901126101c657610aa7604051610a8a6040826112e4565b600481526309e8aa8960e31b6020820152604051918291826112ba565b0390f35b346101c6575f3660031901126101c6576020609e54604051908152f35b346101c6575f3660031901126101c6576020609f54604051908152f35b346101c65760203660031901126101c6576020610b08610b03611298565b611673565b604051908152f35b346101c65760203660031901126101c657607451610b2c611298565b165f5260a5602052602060018060a01b0360405f205416604051908152f35b346101c6575f3660031901126101c6576020633b9aca00609f5404604051908152f35b346101c65760203660031901126101c657607451610b8a611298565b165f5260a1602052602060405f2054604051908152f35b346101c65760203660031901126101c657607451610bbd611298565b165f5260a4602052602060018060a01b0360405f205416604051908152f35b346101c6575f3660031901126101c6577f44c4d30b2eaad5130ad70c3ba6972730566f3e6359ab83e800d905c61b1c51db54607451163303610cae573315610c69575f5160206120155f395f51905f52543390607451167fc7c0c772add429241571afb3805861fb3cfa2af374534088b76cdb4325a87e9a5f80a3335f5160206120155f395f51905f5255005b60405162461bcd60e51b815260206004820152601a60248201527f4e657720476f7665726e6f7220697320616464726573732830290000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152603060248201527f4f6e6c79207468652070656e64696e6720476f7665726e6f722063616e20636f60448201526f6d706c6574652074686520636c61696d60801b6064820152608490fd5b346101c65760203660031901126101c657607451610d28611298565b165f5260a260205260ff60405f20541660405160058210156107ff576020918152f35b346101c6575f3660031901126101c657609c546040516074519091168152602090f35b346101c65760403660031901126101c657610d87611298565b602435610d9f60018060a01b03609c54163314611473565b6074518216918215610e2757610775610dc191610dbb846118b6565b906119b4565b607051610dd082609a546114cc565b80609a551015610df5575f516020611ff55f395f51905f5260205f92604051908152a3005b60405162461bcd60e51b815260206004820152600a6024820152694d617820737570706c7960b01b6044820152606490fd5b60405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f206164647265737300000000000000006044820152606490fd5b346101c65760203660031901126101c657610e9260018060a01b03609c54163314611473565b6101e36004356114d9565b346101c6575f3660031901126101c657602060405160128152f35b346101c65760603660031901126101c657610ed1611298565b610ed96112a9565b60745181169160443591610eee841515611427565b60745182165f818152609b6020908152604080832033845290915290205490939092838211610f665781602093610f54925f516020611ff55f395f51905f5296885f52609b875260405f2060018060a01b0333165f5287528360405f2091039055611983565b604051908152a3602060405160018152f35b60405162461bcd60e51b8152602060048201526012602482015271105b1b1bddd85b98d948195e18d95959195960721b6044820152606490fd5b346101c6575f3660031901126101c6576020609a54604051908152f35b346101c6575f3660031901126101c6575f5160206120155f395f51905f52546040516074519091168152602090f35b346101c65760403660031901126101c657611005611298565b335f818152609b60209081526040808320607451909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346101c6575f3660031901126101c6576020633b9aca00609e5404604051908152f35b346101c6575f3660031901126101c657610aa76040516110a46040826112e4565b600c81526b27b934b3b4b71022ba3432b960a11b6020820152604051918291826112ba565b346101c65760203660031901126101c6576110e2611298565b5f5160206120155f395f51905f5254607451163314918215611217575b5061112a7fa4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd392611334565b6074518181165f81815260a4602052604090205490929161114d91161515611391565b5f82815260a46020526040902054607451169161077b9061077561075e61117385611673565b9261076461075e61118389611673565b92895f52609d60205261119a60405f205494611870565b908a5f5260a560205260405f20606c5160a01b8154169055805f5260a460205260405f20606c5160a01b8154169055805f5260a260205260405f20600160ff198254161790555f52609d6020528660405f2055895f5260a260205260405f20600260ff19825416179055895f52609d6020528060405f20556118b6565b609c5463570d8e1d60e01b825290925060209083906004908290607451165afa918215610a5e577fa4fa89dd14422a509261a2d4d459f93abdc84c6e92c5e7ae5448243713967bd39261112a915f91611279575b5060745116331492506110ff565b611292915060203d602011610a5757610a4981836112e4565b8461126b565b60043590607451821682036101c657565b60243590607451821682036101c657565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b90601f8019910116810190811067ffffffffffffffff82111761130657604052565b634e487b7160e01b5f52604160045260245ffd5b908160209103126101c65751607451811681036101c65790565b1561133b57565b60405162461bcd60e51b815260206004820152602860248201527f43616c6c6572206973206e6f74207468652053747261746567697374206f722060448201526723b7bb32b93737b960c11b6064820152608490fd5b1561139857565b60405162461bcd60e51b815260206004820152601860248201527f5a65726f2061646472657373206e6f7420616c6c6f77656400000000000000006044820152606490fd5b81810392915f1380158285131691841216176113f557565b634e487b7160e01b5f52601160045260245ffd5b8115611413570490565b634e487b7160e01b5f52601260045260245ffd5b1561142e57565b60405162461bcd60e51b815260206004820152601860248201527f5472616e7366657220746f207a65726f206164647265737300000000000000006044820152606490fd5b1561147a57565b60405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865205661756c740000000000000000006044820152606490fd5b919082039182116113f557565b919082018092116113f557565b609a54801561162e578181146115e857506070518111156115e357506070515b80609a5561150960a054826114bf565b609e5490670de0b6b3a76400008202828104670de0b6b3a764000014831517156113f55781611537916114cc565b5f198101919082116113f55761154c91611409565b9182609f55821561159e576115997f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e25723593604051938493846040919493926060820195825260208201520152565b0390a1565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206368616e676520696e20737570706c7900000000000000006044820152606490fd5b6114f9565b609e54609f54604080519384526020840192909252908201527f41645eb819d3011b13f97696a8109d14bfcddfaca7d063ec0564d62a3e25723591508060608101611599565b60405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420696e637265617365203020737570706c7900000000000000006044820152606490fd5b60745181165f81815260a2602052604090205460ff169160058310156107ff576003831461171457815f52609d60205260405f205490670de0b6b3a7640000820291808304670de0b6b3a764000014901517156113f5576004916116d96116df92611c85565b90611409565b92146116e9575090565b5f90815260a56020908152604080832054607451168352609d909152902054611711916114bf565b90565b5090505f52609d60205260405f205490565b600160ff1b81146113f5575f0390565b90607451821690811561178b5780156117865760208161176e6107755f96610dbb6107705f516020611ff55f395f51905f52976118b6565b61177a81609a546114bf565b609a55604051908152a3565b505050565b60405162461bcd60e51b815260206004820152601a60248201527f4275726e2066726f6d20746865207a65726f20616464726573730000000000006044820152606490fd5b156117d757565b60405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f742074686520476f7665726e6f720000000000006044820152606490fd5b9061182682611c85565b916b033b2e3c9fd0803ce8000000830361185057607451165f908152609d60205260409020549190565b60018060a01b03165f52609d602052633b9aca008060405f205404920490565b609f54908181029181830414901517156113f557670de0b6b3a76400008101908181116113f557670de0b6b3a763ffff019081116113f557670de0b6b3a7640000900490565b6001600160ff1b0381116118c75790565b60405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608490fd5b9190915f83820193841291129080158216911516176113f557565b80611968575b50806119475750565b61195e6119639161195960a0546118b6565b61191d565b611fa6565b60a055565b61195e61197a91611959609e546118b6565b609e555f61193e565b6119b2926119ac6119ac610dbb946119a461077595610dbb610770876118b6565b9690946118b6565b9261191d565b565b90915f915f9260018060a01b03821694855f5260a260205260ff60405f205416926119e66119e182611673565b6118b6565b5f6119f1848361191d565b12611c405761195e83611a039261191d565b9360058110156107ff5760038103611a7e575050505f85815260a46020526040902054607451169050611a416106c383611a3c84611673565b6114cc565b91611a63611a4e846118b6565b835f52609d60205261076460405f20546118b6565b955f52609d60205260405f20555f52609d60205260405f2055565b600403611ae6575050506106c3611ab691855f5260a560205260018060a01b0360405f2054165f52609d60205260405f2054906114cc565b611ad7611ac2826118b6565b855f52609d60205261076460405f20546118b6565b935f52609d60205260405f2055565b809692963b8015908115611baa575b501580611b8a575b80611b76575b611b67575b505f82815260a16020526040902054948515611b59575093670de0b6b3a763ffff1901611b3e575b5f52609d60205260405f2055565b805f5260a1602052670de0b6b3a764000060405f2055611b30565b9450509350611ab690611870565b611b7090611ca7565b5f611b08565b50825f5260a160205260405f205415611b03565b50825f5260a260205260ff60405f20541660058110156107ff5715611afd565b601791501480611bbb575b5f611af5565b50803b67ffffffffffffffff811161130657604051611be4601f8301601f1916602001826112e4565b81815260208101915f83853c5190516001600160e81b03198116919060038210611c21575b50506001600160e81b03191661ef0160f01b14611bb5565b6001600160e81b0319600392830390921b82901b161690505f80611c09565b60405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606490fd5b607451165f90815260a160205260409020548015611ca05790565b50609f5490565b60745181165f81815260a16020526040902054909190611ddb57815f5260a260205260ff60405f20541660058110156107ff5760028114908115611dd2575b5015611d795781611d706020927f201ace89ad3f5ab7428b91989f6a50d1998791c7b94a0fa812fd64a57687165e945f52609d845261077561075e610770611d3260405f205494611673565b93865f5260a2885260405f20600160ff19825416179055865f5260a18852670de0b6b3a764000060405f2055865f52609d88528460405f20556118b6565b604051908152a1565b60405162461bcd60e51b815260206004820152602b60248201527f4f6e6c79207374616e64617264207265626173696e67206163636f756e74732060448201526a18d85b881bdc1d081bdd5d60aa1b6064820152608490fd5b9050155f611ce6565b60405162461bcd60e51b815260206004820152601860248201527f4163636f756e74206d757374206265207265626173696e6700000000000000006044820152606490fd5b611e2981611673565b9060018060a01b031690815f5260a160205260405f205415801590611f92575b15611f4d57815f5260a260205260ff60405f20541660058110156107ff5760018114908115611f44575b5015611ee8577f19a249fa2050bac8314ac10e3ad420bd9825574bf750f58810c3c7adfc7b1c6f91611d708261077561077061076a611eb3602097611870565b865f5260a2885260405f20600260ff19825416179055865f5260a188525f6040812055865f52609d88528060405f20556118b6565b60405162461bcd60e51b815260206004820152602e60248201527f4f6e6c79207374616e64617264206e6f6e2d7265626173696e67206163636f7560448201526d373a399031b0b71037b83a1034b760911b6064820152608490fd5b9050155f611e73565b60405162461bcd60e51b815260206004820152601c60248201527f4163636f756e74206d757374206265206e6f6e2d7265626173696e67000000006044820152606490fd5b50815f52609d60205260405f205415611e49565b5f8112611fb05790565b606460405162461bcd60e51b815260206004820152602060248201527f53616665436173743a2076616c7565206d75737420626520706f7369746976656044820152fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef7bea13895fa79d2831e0a9e28edede30099005a50d652d8957cf8a607ee6ca4aa26469706673582212208a115bef6fb57f1ee93f3b78c0eb1f0893456178df89e046ebfe3afd80e340f964736f6c637827302e382e33362d6d656d6f72796d61736b696e672d30332b636f6d6d69742e62633866633738330058