memoscan
← all memos

Memo 0x1e5d9c38…85d409 on Ethereum

data:text/plain;base64,LyogRGlzY3Vzc2lvbjoKICogaHR0cHM6Ly9ib251cy5kZm9odWIuZXRoP2Vuc2Q9Ym9udXMuZGZvaHViLmV0aAogKi8KLyogRGVzY3JpcHRpb246CiAqIE5ldyBMaXF1aWRpdHkgTWluaW5nIFRyYW5zZmVyIEZ1bmN0aW9uYWxpdHkKICovCnByYWdtYSBzb2xpZGl0eSBeMC43LjM7Cgpjb250cmFjdCBMaXF1aWRpdHlNaW5pbmdUcmFuc2ZlckZ1bmN0aW9uYWxpdHkgewoKICAgIHN0cmluZyBwcml2YXRlIF9tZXRhZGF0YUxpbms7CgogICAgY29uc3RydWN0b3Ioc3RyaW5nIG1lbW9yeSBtZXRhZGF0YUxpbmspIHsKICAgICAgICBfbWV0YWRhdGFMaW5rID0gbWV0YWRhdGFMaW5rOwogICAgfQoKICAgIGZ1bmN0aW9uIGdldE1ldGFkYXRhTGluaygpIHB1YmxpYyB2aWV3IHJldHVybnMoc3RyaW5nIG1lbW9yeSkgewogICAgICAgIHJldHVybiBfbWV0YWRhdGFMaW5rOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uU3RhcnQoYWRkcmVzcywgYWRkcmVzcykgcHVibGljIHsKICAgICAgICBJTVZEUHJveHkgcHJveHkgPSBJTVZEUHJveHkobXNnLnNlbmRlcik7CiAgICAgICAgSVN0YXRlSG9sZGVyIHN0YXRlSG9sZGVyID0gSVN0YXRlSG9sZGVyKHByb3h5LmdldFN0YXRlSG9sZGVyQWRkcmVzcygpKTsKICAgICAgICBzdGF0ZUhvbGRlci5zZXRCb29sKF90b1N0YXRlSG9sZGVyS2V5KCJzdGFraW5nLnRyYW5zZmVyLmF1dGhvcml6ZWQiLCBfdG9TdHJpbmcoMHhBN0UxOTVGRTgwMDgwOTA2MDM2YmNCNmI1NDYwMWMzMzkxMUVkMUYwKSksIHRydWUpOwogICAgICAgIHN0YXRlSG9sZGVyLnNldFVpbnQyNTYoInN0YWtpbmcuMHhhN2UxOTVmZTgwMDgwOTA2MDM2YmNiNmI1NDYwMWMzMzkxMWVkMWYwLnRpZXJzWzBdLm1pbkNhcCIsIDYwMDAwMDAwMDAwMDAwMDAwKTsKICAgICAgICBzdGF0ZUhvbGRlci5zZXRVaW50MjU2KCJzdGFraW5nLjB4YTdlMTk1ZmU4MDA4MDkwNjAzNmJjYjZiNTQ2MDFjMzM5MTFlZDFmMC50aWVyc1swXS5oYXJkQ2FwIiwgNjAwMDAwMDAwMDAwMDAwMDAwMDApOwogICAgCgogICAgICAgIHN0YXRlSG9sZGVyLnNldFVpbnQyNTYoInN0YWtpbmcuMHhhN2UxOTVmZTgwMDgwOTA2MDM2YmNiNmI1NDYwMWMzMzkxMWVkMWYwLnRpZXJzWzFdLm1pbkNhcCIsIDcwMDAwMDAwMDAwMDAwMDAwKTsKICAgICAgICBzdGF0ZUhvbGRlci5zZXRVaW50MjU2KCJzdGFraW5nLjB4YTdlMTk1ZmU4MDA4MDkwNjAzNmJjYjZiNTQ2MDFjMzM5MTFlZDFmMC50aWVyc1sxXS5oYXJkQ2FwIiwgNzUwMDAwMDAwMDAwMDAwMDAwMDApOwogICAgICAgIHN0YXRlSG9sZGVyLnNldFVpbnQyNTYoInN0YWtpbmcuMHhhN2UxOTVmZTgwMDgwOTA2MDM2YmNiNmI1NDYwMWMzMzkxMWVkMWYwLnRpZXJzLmxlbmd0aCIsIDIpOwogICAgfQoKICAgIGZ1bmN0aW9uIG9uU3RvcChhZGRyZXNzKSBwdWJsaWMgewogICAgfQoKICAgIGZ1bmN0aW9uIGxpcXVpZGl0eU1pbmluZ1RyYW5zZmVyKGFkZHJlc3Mgc2VuZGVyLCB1aW50MjU2LCB1aW50MjU2IHZhbHVlLCBhZGRyZXNzIHRva2VuKSBwdWJsaWMgewogICAgICAgIElNVkRQcm94eSBwcm94eSA9IElNVkRQcm94eShtc2cuc2VuZGVyKTsKCiAgICAgICAgcmVxdWlyZShJU3RhdGVIb2xkZXIocHJveHkuZ2V0U3RhdGVIb2xkZXJBZGRyZXNzKCkpLmdldEJvb2woX3RvU3RhdGVIb2xkZXJLZXkoInN0YWtpbmcudHJhbnNmZXIuYXV0aG9yaXplZCIsIF90b1N0cmluZyhzZW5kZXIpKSksICJVbmF1dGhvcml6ZWQgYWN0aW9uISIpOwoKICAgICAgICBwcm94eS50cmFuc2ZlcihzZW5kZXIsIHZhbHVlLCB0b2tlbik7CiAgICB9CgogICAgZnVuY3Rpb24gX3RvU3RhdGVIb2xkZXJLZXkoc3RyaW5nIG1lbW9yeSBhLCBzdHJpbmcgbWVtb3J5IGIpIHByaXZhdGUgcHVyZSByZXR1cm5zKHN0cmluZyBtZW1vcnkpIHsKICAgICAgICByZXR1cm4gX3RvTG93ZXJDYXNlKHN0cmluZyhhYmkuZW5jb2RlUGFja2VkKGEsICIuIiwgYikpKTsKICAgIH0KCiAgICBmdW5jdGlvbiBfdG9TdHJpbmcoYWRkcmVzcyBfYWRkcikgcHJpdmF0ZSBwdXJlIHJldHVybnMoc3RyaW5nIG1lbW9yeSkgewogICAgICAgIGJ5dGVzMzIgdmFsdWUgPSBieXRlczMyKHVpbnQyNTYoX2FkZHIpKTsKICAgICAgICBieXRlcyBtZW1vcnkgYWxwaGFiZXQgPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CgogICAgICAgIGJ5dGVzIG1lbW9yeSBzdHIgPSBuZXcgYnl0ZXMoNDIpOwogICAgICAgIHN0clswXSA9ICcwJzsKICAgICAgICBzdHJbMV0gPSAneCc7CiAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgMjA7IGkrKykgewogICAgICAgICAgICBzdHJbMitpKjJdID0gYWxwaGFiZXRbdWludCh1aW50OCh2YWx1ZVtpICsgMTJdID4+IDQpKV07CiAgICAgICAgICAgIHN0clszK2kqMl0gPSBhbHBoYWJldFt1aW50KHVpbnQ4KHZhbHVlW2kgKyAxMl0gJiAweDBmKSldOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc3RyaW5nKHN0cik7CiAgICB9CgogICAgZnVuY3Rpb24gX3RvTG93ZXJDYXNlKHN0cmluZyBtZW1vcnkgc3RyKSBwcml2YXRlIHB1cmUgcmV0dXJucyhzdHJpbmcgbWVtb3J5KSB7CiAgICAgICAgYnl0ZXMgbWVtb3J5IGJTdHIgPSBieXRlcyhzdHIpOwogICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGJTdHIubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgYlN0cltpXSA9IGJTdHJbaV0gPj0gMHg0MSAmJiBiU3RyW2ldIDw9IDB4NUEgPyBieXRlczEodWludDgoYlN0cltpXSkgKyAweDIwKSA6IGJTdHJbaV07CiAgICAgICAgfQogICAgICAgIHJldHVybiBzdHJpbmcoYlN0cik7CiAgICB9Cn0KCmludGVyZmFjZSBJTVZEUHJveHkgewogICAgZnVuY3Rpb24gZ2V0VG9rZW4oKSBleHRlcm5hbCB2aWV3IHJldHVybnMoYWRkcmVzcyk7CiAgICBmdW5jdGlvbiBnZXRTdGF0ZUhvbGRlckFkZHJlc3MoKSBleHRlcm5hbCB2aWV3IHJldHVybnMoYWRkcmVzcyk7CiAgICBmdW5jdGlvbiBnZXRNVkRGdW5jdGlvbmFsaXRpZXNNYW5hZ2VyQWRkcmVzcygpIGV4dGVybmFsIHZpZXcgcmV0dXJucyhhZGRyZXNzKTsKICAgIGZ1bmN0aW9uIHRyYW5zZmVyKGFkZHJlc3MgcmVjZWl2ZXIsIHVpbnQyNTYgdmFsdWUsIGFkZHJlc3MgdG9rZW4pIGV4dGVybmFsOwogICAgZnVuY3Rpb24gZmx1c2hUb1dhbGxldChhZGRyZXNzIHRva2VuQWRkcmVzcywgYm9vbCBpczcyMSwgdWludDI1NiB0b2tlbklkKSBleHRlcm5hbDsKfQoKaW50ZXJmYWNlIElNVkRGdW5jdGlvbmFsaXRpZXNNYW5hZ2VyIHsKICAgIGZ1bmN0aW9uIGlzQXV0aG9yaXplZEZ1bmN0aW9uYWxpdHkoYWRkcmVzcyBmdW5jdGlvbmFsaXR5KSBleHRlcm5hbCB2aWV3IHJldHVybnMoYm9vbCk7Cn0KCmludGVyZmFjZSBJU3RhdGVIb2xkZXIgewogICAgZnVuY3Rpb24gZ2V0Qm9vbChzdHJpbmcgY2FsbGRhdGEgdmFyTmFtZSkgZXh0ZXJuYWwgdmlldyByZXR1cm5zIChib29sKTsKICAgIGZ1bmN0aW9uIHNldEJvb2woc3RyaW5nIGNhbGxkYXRhIHZhck5hbWUsIGJvb2wgdmFsKSBleHRlcm5hbCByZXR1cm5zKGJvb2wpOwogICAgZnVuY3Rpb24gc2V0VWludDI1NihzdHJpbmcgY2FsbGRhdGEgdmFyTmFtZSwgdWludDI1NiB2YWwpIGV4dGVybmFsIHJldHVybnModWludDI1Nik7CiAgICBmdW5jdGlvbiBjbGVhcihzdHJpbmcgY2FsbGRhdGEgdmFyTmFtZSkgZXh0ZXJuYWwgcmV0dXJucyhzdHJpbmcgbWVtb3J5IG9sZERhdGFUeXBlLCBieXRlcyBtZW1vcnkgb2xkVmFsKTsKfQoKaW50ZXJmYWNlIElFUkMyMCB7CiAgICBmdW5jdGlvbiBtaW50KHVpbnQyNTYgYW1vdW50KSBleHRlcm5hbDsKICAgIGZ1bmN0aW9uIGJhbGFuY2VPZihhZGRyZXNzIGFjY291bnQpIGV4dGVybmFsIHZpZXcgcmV0dXJucyAodWludDI1Nik7Cn0=