From 91e58cec9dd1af6fed62326553fc62388f52a8b6 Mon Sep 17 00:00:00 2001 From: ksamarin90 Date: Thu, 18 Sep 2025 16:25:05 +0400 Subject: [PATCH 1/3] rm transfer user --- README.md | 4 - .../1/run-1758197678017.json | 88 +++++++++++++++++++ .../1/run-latest.json | 88 +++++++++++++++++++ deployment/mainnet.json | 4 +- script/TransferUserRemovalUpgrade.s.sol | 35 ++++++++ src/YelayStaking.sol | 63 +------------ src/interfaces/IsYLAY.sol | 2 - src/sYLAY.sol | 48 ---------- test/SYLAYNew.t.sol | 63 ------------- test/YelayStakingLockup.t.sol | 85 ------------------ 10 files changed, 215 insertions(+), 265 deletions(-) create mode 100644 broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-1758197678017.json create mode 100644 broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-latest.json create mode 100644 script/TransferUserRemovalUpgrade.s.sol delete mode 100644 test/SYLAYNew.t.sol diff --git a/README.md b/README.md index a0c988e..e075939 100644 --- a/README.md +++ b/README.md @@ -43,8 +43,6 @@ Token for Yelay. New staking contract, which inherits from `YelayStakingBase` (`SpoolStaking` before). `YelayStakingBase` is a simple Synthetix reward contract, with added functionality to mint `sYLAY` (`voSPOOL` before). `YelayStaking` inherits the same properties. - `migrateUser`: migrate user stake from `SpoolStaking` to `YelayStaking`. Only callable by the `YelayMigrator` contract. _Note: This contract should also migrate SPOOL rewards from SpoolStaking and voSPOOL, as after SPOOL is paused they are not claimable. Currently, it gets SPOOL rewards from SpoolStaking only, as getting latest voSPOOL rewards earned is not possible via a view function. However, SpoolStaking and voSPOOLRewards are upgradeable, so it would be possible to add a function on SpoolStaking to get them, and upgrade SpoolStaking._ - -- `transferUser`: Allows a user to migrate their stake to another wallet (e.g. if they want to transfer from a hot wallet to a cold wallet). The new wallet must NOT be an existing staker. All other `SpoolStaking` functions stay in place. --- @@ -80,8 +78,6 @@ Functions in sYLAY: - `migrateInitial`: prerequisite to start migration - `migrateGlobalTranches`: allows the migrator contract to migrate global tranches from VoSPOOL to sYLAY. Performs conversion as above. - `migrateUser`: allows the migrator contract to migrate user tranches and user global from VoSPOOL to sYLAY. Performs conversion as above. -- `transferUser`: allows the user, via the migrator contract, to transfer sYLAY state from one address to another. - # The Migration Flow diff --git a/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-1758197678017.json b/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-1758197678017.json new file mode 100644 index 0000000..2f9becd --- /dev/null +++ b/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-1758197678017.json @@ -0,0 +1,88 @@ +{ + "transactions": [ + { + "hash": "0x467e5bcc80a5dec9ef99fd3fb05a768f3862505690d648d8695944371a08f07e", + "transactionType": "CREATE", + "contractName": "YelayStaking", + "contractAddress": "0x15eff5cdeb0b3b26f633ba523fdb2bb9d862d74e", + "function": null, + "arguments": [ + "0xAEe5913FFd19dBcA4Fd1eF6F3925ed0414407d37", + "0xC0F7B477e05B29097546dAae2E3dF2decBeB405d", + "0x705f023b2Ce85B0c7039B43C8e217F61a3A3bb13", + "0x3E246beb1A0daF94FB376C44cAc2D1C8B979C0d0", + "0xAB865D95A574511a6c893C38A4D892275ca70570" + ], + "transaction": { + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "gas": "0x55d99b", + "value": "0x0", + "input": "0x6101206040523480156200001257600080fd5b506040516200504b3803806200504b83398101604081905262000035916200010b565b806001600160a01b038116620000c35760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b0390811660805294851660a0525091831660c052821660e05216610100526200017b565b80516001600160a01b03811681146200010657600080fd5b919050565b600080600080600060a086880312156200012457600080fd5b6200012f86620000ee565b94506200013f60208701620000ee565b93506200014f60408701620000ee565b92506200015f60608701620000ee565b91506200016f60808701620000ee565b90509295509295909350565b60805160a05160c05160e05161010051614dd5620002766000396000818161055a015281816124b101528181613fbc01526142a10152600081816104ea0152818161254701528181613ba801528181613d100152613ed10152600081816105b401528181610a63015281816110b00152818161119e01528181611242015281816125fa01528181612c8301528181612e53015281816132ad0152613dc301526000818161044e015281816112d2015281816116750152818161219f0152818161229a0152818161248201528181612f1701528181613a6001528181613aa101528181613f8d015261403101526000612bb40152614dd56000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c80638129fc1c11610160578063b51609b4116100d8578063ec199a861161008c578063f122977711610071578063f122977714610617578063f4de10ac14610657578063fb6138ab1461066a57600080fd5b8063ec199a86146105f1578063f051c8c31461060457600080fd5b8063ccd83835116100bd578063ccd83835146105af578063d1e6044a146105d6578063d6fbddd7146105e957600080fd5b8063b51609b41461057c578063cbf9fe5f1461058f57600080fd5b80639ec8f9d51161012f578063a4d5e67c11610114578063a4d5e67c1461052f578063a694fc3a14610542578063acc2166a1461055557600080fd5b80639ec8f9d5146104e55780639fa451021461050c57600080fd5b80638129fc1c1461049e578063817b1cd2146104a657806383e25f8a146104af5780639a4c5719146104c257600080fd5b8063467e27f41161020e578063638634ee116101c257806373c2ad9c116101a757806373c2ad9c14610470578063780d9d2d146104835780637bb7bed11461048b57600080fd5b8063638634ee1461042157806372f702f31461044957600080fd5b8063540bb5dd116101f3578063540bb5dd146103aa57806356891412146103bd5780635f56a31a146103c657600080fd5b8063467e27f4146103645780634c86c3161461039757600080fd5b8063211dc32d116102655780632e0b00451161024a5780632e0b00451461032b5780632e17de781461033e5780632ee409081461035157600080fd5b8063211dc32d146102f857806327e235e31461030b57600080fd5b8063037ff3931461029757806310098ad5146102ac5780631338736f146102d2578063189ab267146102e5575b600080fd5b6102aa6102a536600461474f565b61075f565b005b6102bf6102ba366004614788565b610883565b6040519081526020015b60405180910390f35b6102aa6102e03660046147a5565b610923565b6102aa6102f33660046147c7565b6109b2565b6102bf610306366004614803565b610b44565b6102bf610319366004614788565b60376020526000908152604090205481565b6102aa610339366004614845565b610c50565b6102aa61034c36600461487a565b610e59565b6102aa61035f366004614893565b611338565b610387610372366004614788565b603a6020526000908152604090205460ff1681565b60405190151581526020016102c9565b6102aa6103a5366004614788565b611735565b6102aa6103b83660046148bf565b6118b0565b6102bf603b5481565b6103fc6103d4366004614788565b60396020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b61043461042f366004614788565b611a42565b60405163ffffffff90911681526020016102c9565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61047e3660046148bf565b611a81565b6034546102bf565b6103fc61049936600461487a565b611db2565b6102aa611de9565b6102bf60365481565b6102aa6104bd3660046148fd565b611f0d565b6103876104d0366004614788565b60386020526000908152604090205460ff1681565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b61038761051a366004614788565b60356020526000908152604090205460ff1681565b6102aa61053d366004614788565b61204c565b6102aa61055036600461487a565b612100565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61058a366004614932565b612204565b6102bf61059d366004614788565b603c6020526000908152604090205481565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa6105e4366004614974565b612399565b6102bf612516565b6102aa6105ff366004614974565b61266e565b6102aa61061236600461474f565b6127b1565b61062a610625366004614788565b6128c8565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b6102aa6106653660046149c0565b612a0e565b6106f0610678366004614788565b6033602052600090815260409020805460019091015463ffffffff808316926401000000008082048316936801000000000000000090920477ffffffffffffffffffffffffffffffffffffffffffffffff1692821691047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1685565b6040805163ffffffff9687168152948616602086015277ffffffffffffffffffffffffffffffffffffffffffffffff909316928401929092529290921660608201527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909116608082015260a0016102c9565b610767612b83565b6107f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152603a602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f875e6b685dc796d88ea0d32a721c8114d31e77f43a6bb0879c32e7321bb59df191015b60405180910390a25050565b60003315610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f59656c61795374616b696e673a3a617661696c61626c653a204f6e6c7920737460448201527f617469632d63616c6c61626c650000000000000000000000000000000000000060648201526084016107ef565b61091c82612c39565b9392505050565b60026001540361098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361099e81612d5b565b6109a9338484612d6d565b50506001805550565b600260015403610a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001556040517fd131ef5700000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d131ef5790610a9c90339087908790600401614ab5565b6020604051808303816000875af1158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190614b17565b603b805482019055336000818152603c6020908152604091829020805485019055815184815290810186905292935090917f1f04ae837474cd4ca082595601e32f6cd5de50b09ee3b24f3b3ccded6869b872910160405180910390a250506001805550565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260336020908152604080832093851683526037909152812054909190808303610bb5575073ffffffffffffffffffffffffffffffffffffffff83166000908152600390910160205260409020549050610c4a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526002830160209081526040808320546003860190925290912054670de0b6b3a764000082610bfe896128c8565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610c269190614b5f565b610c309085614b76565b610c3a9190614bb3565b610c449190614bee565b93505050505b92915050565b610c58612b83565b610ce4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b816000610cf18282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604090206001015463ffffffff80851691161115610d8f5773ffffffffffffffffffffffffffffffffffffffff84166000908152603360205260409020600181015481547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1663ffffffff90911664010000000002179055610dea565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1664010000000063ffffffff8616021790555b73ffffffffffffffffffffffffffffffffffffffff841660008181526033602090815260409182902054915164010000000090920463ffffffff1682527f21b2dd8950fc3a17e42d75bdfba3bf13f5a451f2d4b1dab7ab7f8d44f8a0692691015b60405180910390a250505050565b600260015403610ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610f7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b33610f8781612d5b565b600080610f9333612c39565b91509150600084118015610fa75750808411155b611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a756e7374616b653a20556e617661696c616260448201527f6c6520616d6f756e74207265717565737465640000000000000000000000000060648201526084016107ef565b603b80548390039055336000908152603c6020908152604080832080548690039055603680548890039055603790915281208054869003908190559003611126576040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260006024820152600160448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b15801561110957600080fd5b505af115801561111d573d6000803e3d6000fd5b505050506112b8565b60008483101561113f5761113a8386614b5f565b611142565b60005b905060008584101561115557600061115f565b61115f8685614b5f565b6040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260248101849052600060448201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b1580156111f757600080fd5b505af115801561120b573d6000803e3d6000fd5b50506040517f3f9a6020000000000000000000000000000000000000000000000000000000008152336004820152602481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169250633f9a60209150604401600060405180830381600087803b15801561129d57600080fd5b505af11580156112b1573d6000803e3d6000fd5b5050505050505b6112f973ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633866130df565b60405184815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f759060200160405180910390a25050600180555050565b6002600154036113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015533600090815260386020526040902054829060ff16806113cc57506113cc612b83565b61147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2043616e6e6f74207374616b6520666f72206f74686572206164647265737360648201527f6573000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260376020526040902054156116475773ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541661155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a204164647265737320616c7265616479207374616b6564000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260396020526040902054163314806115955750611595612b83565b611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2041646472657373207374616b656420627920616e6f74686572206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b8261165181612d5b565b61165b84846131b3565b61169d73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b73ffffffffffffffffffffffffffffffffffffffff84166000818152603960205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590519091907ff27841bf2ce46c8c33a68e103ff4238ad9192a4156d62c4b449f834e914d1291906117239087815260200190565b60405180910390a35050600180555050565b3360009081526038602052604090205460ff16801561177a575073ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541633145b806117885750611788612b83565b61183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f59656c61795374616b696e673a3a616c6c6f77556e7374616b65466f723a204360448201527f616e6e6f7420616c6c6f7720756e7374616b696e6720666f722061646472657360648201527f7300000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff811660008181526039602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055513392917f168f8317dbd30ba6270b791af2ed458991c1b3750d39d4b0019978debde8144591a350565b6118b8612b83565b611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8581169190911782556001820154919291169003611a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f59656c61795374616b696e673a3a6e6f74696679526577617264416d6f756e7460448201527f3a20546f6b656e206e6f7420796574206164646564000000000000000000000060648201526084016107ef565b611a3c848361336d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040812054610c4a904290640100000000900463ffffffff16613726565b611a89612b83565b611b15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020908152604080832060359092529091205460ff1615611bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f59656c61795374616b696e673a3a616464546f6b656e3a2043616e6e6f74206160448201527f646420626c61636b6c697374656420746f6b656e00000000000000000000000060648201526084016107ef565b8263ffffffff16600003611c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a616464546f6b656e3a20526577617264206460448201527f75726174696f6e2063616e6e6f7420626520300000000000000000000000000060648201526084016107ef565b600181015463ffffffff1615611d04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f59656c61795374616b696e673a3a616464546f6b656e3a20546f6b656e20616c60448201527f726561647920616464656400000000000000000000000000000000000000000060648201526084016107ef565b603480546001810182556000919091527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c10180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff84161781558115611a3c57611a3c848361336d565b60348181548110611dc257600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600054610100900460ff16611e045760005460ff1615611e08565b303b155b611e94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff16158015611ed357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b611edb61373b565b8015611f0a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b600260015403611f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b6002600155336000908152603a602052604090205460ff1680611f9f5750611f9f612b83565b61202d57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f59656c61795374616b696e673a3a63616e4c6f636b466f72416464726573733a60448201527f2043616e6e6f74206c6f636b20666f72206f746865722061646472657373657360648201526084016107ef565b8261203781612d5b565b612042848484612d6d565b5050600180555050565b612054612b83565b6120e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b806120ea816137dc565b8160006120f78282612f8d565b611a3c8461389e565b60026001540361216c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361217b81612d5b565b61218533836131b3565b6121c773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308561330f565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a2505060018055565b61220c612b83565b612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f59656c61795374616b696e673a3a7265636f76657245524332303a2043616e6e60448201527f6f7420776974686472617720746865207374616b696e6720746f6b656e00000060648201526084016107ef565b61239473ffffffffffffffffffffffffffffffffffffffff841682846130df565b505050565b600260015403612405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015560006124163383613a5c565b9050801561250e5761242733613c6d565b816124355761243533613ccb565b61243f33826131b3565b6040517fcd8515cf00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b1580156124f557600080fd5b505af1158015612509573d6000803e3d6000fd5b505050505b505060018055565b6040517f5fd619650000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635fd61965906024016020604051808303816000875af11580156125a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c99190614b17565b6040517f2e638b5f0000000000000000000000000000000000000000000000000000000081523360048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e638b5f90602401600060405180830381600087803b15801561265357600080fd5b505af1158015612667573d6000803e3d6000fd5b5050505090565b6002600154036126da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b61279b33613e22565b80156127aa576127aa33613e80565b5060018055565b6127b9612b83565b612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff821660008181526038602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f772c7bbbb43be2b0e7bb7f68909195e3d9d6454e330539807adc92c90a5141439101610877565b73ffffffffffffffffffffffffffffffffffffffff811660009081526033602052604081206036548203612926576001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b600181015460009063ffffffff1661293d85611a42565b6129479190614c06565b63ffffffff1690508060000361298857506001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b6036548254612a0691906129c29068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1684614b76565b6129cc9190614bb3565b6001840154612a01919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b61408c565b949350505050565b600260015403612a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b60005b8251811015612b7357612b61838281518110612b5357612b53614c2b565b60200260200101513361413e565b80612b6b81614c5a565b915050612b35565b50801561250e5761250e33613e80565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015612c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c349190614c92565b905090565b6040517fab95e67e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015260009182917f0000000000000000000000000000000000000000000000000000000000000000169063ab95e67e906024016020604051808303816000875af1158015612ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf09190614b17565b73ffffffffffffffffffffffffffffffffffffffff84166000908152603c6020526040902054909250612d24908390614b5f565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260376020526040902054612d549190614b5f565b9050915091565b612d6481613c6d565b611f0a81613ccb565b60008211612dfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f59656c61795374616b696e673a3a5f6c6f636b3a2043616e6e6f74206c6f636b60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107ef565b6040517f9e52c75200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390526000917f000000000000000000000000000000000000000000000000000000000000000090911690639e52c752906064016020604051808303816000875af1158015612e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec29190614b17565b603b80548201905573ffffffffffffffffffffffffffffffffffffffff8086166000908152603c60209081526040808320805486019055603680548901905560379091529020805486019055909150612f3f907f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff8616917fd4665e3049283582ba6f9eba07a5b3e12dab49e02da99e8927a47af5d134bea59101610e4b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260409020612fbb836128c8565b8160010160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555061301683611a42565b6001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905573ffffffffffffffffffffffffffffffffffffffff821615612394576130738383610b44565b73ffffffffffffffffffffffffffffffffffffffff929092166000908152600382016020908152604080832094909455600183015460029093019052919091206401000000009091047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526123949084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261435a565b60008111613242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f59656c61795374616b696e673a3a5f7374616b653a2043616e6e6f742073746160448201527f6b6520300000000000000000000000000000000000000000000000000000000060648201526084016107ef565b603680548201905573ffffffffffffffffffffffffffffffffffffffff82811660008181526037602052604090819020805485019055517f3f9a60200000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f000000000000000000000000000000000000000000000000000000000000000090911690633f9a602090604401600060405180830381600087803b1580156132f357600080fd5b505af1158015613307573d6000803e3d6000fd5b505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052611a3c9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613131565b81600061337a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902077ffffffffffffffffffffffffffffffffffffffffffffffff6133ca670de0b6b3a764000086614b76565b60018301546133ff919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b111561348d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a5f6e6f74696679526577617264416d6f756e60448201527f743a2052657761726420616d6f756e7420746f6f20626967000000000000000060648201526084016107ef565b80546000906134a29063ffffffff1642614caf565b8254909150640100000000900463ffffffff1642106135855781546134e89063ffffffff166134d9670de0b6b3a764000088614b76565b6134e39190614bb3565b614466565b825477ffffffffffffffffffffffffffffffffffffffffffffffff91909116680100000000000000000267ffffffffffffffff8216811784556040805188815263ffffffff9283169290931691909117602083015273ffffffffffffffffffffffffffffffffffffffff8816917f6a6f77044107a33658235d41bedbbaf2fe9ccdceb313143c947a5e76e1ec8474910160405180910390a26136b5565b81546000906135a3904290640100000000900463ffffffff16614b5f565b83549091506000906135db9068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1683614b76565b845490915060009061360a9063ffffffff1683613600670de0b6b3a76400008c614b76565b6134d99190614bee565b855477ffffffffffffffffffffffffffffffffffffffffffffffff8216680100000000000000000267ffffffffffffffff821681178855604080518c81526020810187905263ffffffff92831693831693909317908301528616606082015290915073ffffffffffffffffffffffffffffffffffffffff8a16907f12b903bd655ecbcd9e3c889d933351dee4800a3a080c2e8538dbe79be0143fc79060800160405180910390a25050505b60018201805463ffffffff4281167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009092169190911790915582549116640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff90911617905550505050565b6000818311613735578261091c565b50919050565b600054610100900460ff166137d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b6137da614510565b565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040902054640100000000900463ffffffff164211611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f59656c61795374616b696e673a3a5f6f6e6c7946696e69736865643a2052657760448201527f617264206e6f742066696e69736865640000000000000000000000000000000060648201526084016107ef565b60345460005b81811015612394578273ffffffffffffffffffffffffffffffffffffffff16603482815481106138d6576138d6614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1603613a4a57603461390a600184614b5f565b8154811061391a5761391a614c2b565b6000918252602090912001546034805473ffffffffffffffffffffffffffffffffffffffff909216918390811061395357613953614c2b565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060348054806139ac576139ac614cd7565b60008281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560405173ffffffffffffffffffffffffffffffffffffffff8516917f755c47ac85b75fe2251607db5a480aac818b88bb535814bf1e3c4784ae4f6baa91a2505050565b80613a5481614c5a565b9150506138a4565b60007f000000000000000000000000000000000000000000000000000000000000000083613a8a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600090815260336020908152604080832093891683526003840190915290205493508315613b515773ffffffffffffffffffffffffffffffffffffffff86166000908152600382016020526040808220919091555133907f6675fb32d259af2b7287aeeead9dc867fe8ca2cf653265dfadd302512ab59f0690613b489087815260200190565b60405180910390a25b8415613c6457613b6086613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c179190614b17565b90508015613c6257613c298186614bee565b60405181815290955033907fa73ffcc7352d89c062bc4e024ef35bf0227d67ac65ad1c8b334260a85a9e1e359060200160405180910390a25b505b50505092915050565b60345460005b8181101561239457613cb960348281548110613c9157613c91614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684612f8d565b80613cc381614c5a565b915050613c73565b6040517f5fd6196500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635fd61965906024016020604051808303816000875af1158015613d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7d9190614b17565b506040517f2e638b5f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690632e638b5f90602401600060405180830381600087803b158015613e0757600080fd5b505af1158015613e1b573d6000803e3d6000fd5b5050505050565b60345460005b8181101561239457613e6e60348281548110613e4657613e46614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461413e565b80613e7881614c5a565b915050613e28565b613e8981613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f409190614b17565b90508015614088576040517fcd8515cf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b15801561400057600080fd5b505af1158015614014573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116825260208201869052861693507f7d72689587d6992abf89f27bfc51b5ca89f108900547aa61628552e1e8e90bd0925001610877565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f323420626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b5090565b818161414a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604081208054909163ffffffff9091169003614209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f59656c61795374616b696e673a3a5f6765745265776172643a2042616420726560448201527f7761726420746f6b656e0000000000000000000000000000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260038201602052604090205480156133075773ffffffffffffffffffffffffffffffffffffffff858116600081815260038501602052604080822091909155517fcd8515cf00000000000000000000000000000000000000000000000000000000815260048101919091528782166024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063cd8515cf90606401600060405180830381600087803b1580156142e757600080fd5b505af11580156142fb573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8a8116825260208201869052891693507f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e92500160405180910390a2505050505050565b60006143bc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166145ad9092919063ffffffff16565b80519091501561239457808060200190518101906143da9190614c92565b612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107ef565b600077ffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f323820626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff166145a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b60018055565b6060612a0684846000858573ffffffffffffffffffffffffffffffffffffffff85163b614636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107ef565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161465f9190614d32565b60006040518083038185875af1925050503d806000811461469c576040519150601f19603f3d011682016040523d82523d6000602084013e6146a1565b606091505b50915091506146b18282866146bc565b979650505050505050565b606083156146cb57508161091c565b8251156146db5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef9190614d4e565b73ffffffffffffffffffffffffffffffffffffffff81168114611f0a57600080fd5b8015158114611f0a57600080fd5b803561474a81614731565b919050565b6000806040838503121561476257600080fd5b823561476d8161470f565b9150602083013561477d81614731565b809150509250929050565b60006020828403121561479a57600080fd5b813561091c8161470f565b600080604083850312156147b857600080fd5b50508035926020909101359150565b60008082840360608112156147db57600080fd5b60408112156147e957600080fd5b50919360408501359350915050565b803561474a8161470f565b6000806040838503121561481657600080fd5b82356148218161470f565b9150602083013561477d8161470f565b803563ffffffff8116811461474a57600080fd5b6000806040838503121561485857600080fd5b82356148638161470f565b915061487160208401614831565b90509250929050565b60006020828403121561488c57600080fd5b5035919050565b600080604083850312156148a657600080fd5b82356148b18161470f565b946020939093013593505050565b6000806000606084860312156148d457600080fd5b83356148df8161470f565b92506148ed60208501614831565b9150604084013590509250925092565b60008060006060848603121561491257600080fd5b833561491d8161470f565b95602085013595506040909401359392505050565b60008060006060848603121561494757600080fd5b83356149528161470f565b92506020840135915060408401356149698161470f565b809150509250925092565b60006020828403121561498657600080fd5b813561091c81614731565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156149d357600080fd5b823567ffffffffffffffff808211156149eb57600080fd5b818501915085601f8301126149ff57600080fd5b8135602082821115614a1357614a13614991565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108682111715614a5657614a56614991565b604052928352818301935084810182019289841115614a7457600080fd5b948201945b83861015614a9957614a8a866147f8565b85529482019493820193614a79565b9650614aa8905087820161473f565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff8416815260808101833561ffff8116808214614ae557600080fd5b8060208501525050602084013560ff8116808214614b0257600080fd5b60408401525060609091019190915292915050565b600060208284031215614b2957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614b7157614b71614b30565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bae57614bae614b30565b500290565b600082614be9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115614c0157614c01614b30565b500190565b600063ffffffff83811690831681811015614c2357614c23614b30565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c8b57614c8b614b30565b5060010190565b600060208284031215614ca457600080fd5b815161091c81614731565b600063ffffffff808316818516808303821115614cce57614cce614b30565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60005b83811015614d21578181015183820152602001614d09565b83811115611a3c5750506000910152565b60008251614d44818460208701614d06565b9190910192915050565b6020815260008251806020840152614d6d816040850160208701614d06565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220531900718a54d29e179192854d9c39e1e75835747533bac072bc3923a607114f64736f6c634300080d0033000000000000000000000000aee5913ffd19dbca4fd1ef6f3925ed0414407d37000000000000000000000000c0f7b477e05b29097546daae2e3df2decbeb405d000000000000000000000000705f023b2ce85b0c7039b43c8e217f61a3a3bb130000000000000000000000003e246beb1a0daf94fb376c44cac2d1c8b979c0d0000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", + "nonce": "0x107", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc0328652092a23da6081f4ba49c5750502b74108b19d01d2a7cb7d29df54f42d", + "transactionType": "CREATE", + "contractName": "sYLAY", + "contractAddress": "0x3d79fbbf918327968e75dd0f5b1d25ac65c8dfa2", + "function": null, + "arguments": [ + "0xAB865D95A574511a6c893C38A4D892275ca70570" + ], + "transaction": { + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "gas": "0x588a73", + "value": "0x0", + "input": "0x60a06040523480156200001157600080fd5b5060405162005135380380620051358339810160408190526200003491620000d5565b806001600160a01b038116620000c25760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b03166080525062000107565b600060208284031215620000e857600080fd5b81516001600160a01b03811681146200010057600080fd5b9392505050565b60805161501262000123600039600061393d01526150126000f3fe608060405234801561001057600080fd5b50600436106103205760003560e01c806388278207116101a7578063cbfd3a43116100ee578063d7febbca11610097578063e4c4949511610071578063e4c4949514610a00578063edcd508a14610a13578063f46eccc414610a3657600080fd5b8063d7febbca146109c5578063dd62ed3e146109cd578063e42084df146109e057600080fd5b8063d131ef57116100c8578063d131ef571461090a578063d4f54eae1461091d578063d6a182b3146109b257600080fd5b8063cbfd3a43146108cf578063cf456ae7146108d7578063d09f88b5146108ea57600080fd5b8063a04d804311610150578063ab95e67e1161012a578063ab95e67e146108a1578063c8800d1c146108b4578063c8a168ef146108c757600080fd5b8063a04d804314610873578063a5ef7fab14610886578063a9059cbb1461088e57600080fd5b806395d89b411161018157806395d89b41146108115780639dc29fac1461084d5780639e52c7521461086057600080fd5b8063882782071461067f5780638afd9bc4146106d85780638c2a8034146106fe57600080fd5b806344b066f51161026b5780635eb5164d116102145780637a1957ca116101ee5780637a1957ca1461065c5780637a81cf261461066457806385cf95ac1461066c57600080fd5b80635eb5164d1461063857806370a082311461064057806378362cd61461065357600080fd5b80635b1534cb116102455780635b1534cb1461054e5780635b4653441461060f5780635df0f4b61461062f57600080fd5b806344b066f514610510578063468682c01461051a5780635638f3dd1461053b57600080fd5b80632d43b867116102cd5780633f9a6020116102a75780633f9a6020146104e157806340c10f19146104f457806343481a181461050757600080fd5b80632d43b867146103f65780632e638b5f146104b2578063313ce567146104c757600080fd5b806316349cff116102fe57806316349cff146103ba57806318160ddd146103db57806323b872dd146103e357600080fd5b806306fdde0314610325578063095ea7b31461037757806312fb31751461039a575b600080fd5b6103616040518060400160405280600c81526020017f5374616b65642059656c6179000000000000000000000000000000000000000081525081565b60405161036e919061473b565b60405180910390f35b61038a6103853660046147d2565b610a59565b604051901515815260200161036e565b6103ad6103a83660046147fc565b610ae9565b60405161036e9190614817565b6103cd6103c83660046147fc565b610d25565b60405190815260200161036e565b6103cd610d44565b61038a6103f1366004614899565b610d83565b6104756104043660046148d5565b60066020908152600091825260409182902082518083018452815465ffffffffffff9081168252845180850186526001840154821681528551808601875260028501548316815286518087018852600386015484168152875196870190975260049094015490911684529093909285565b60408051955165ffffffffffff9081168752945185166020870152925184169285019290925251821660608401525116608082015260a00161036e565b6104c56104c03660046147fc565b610e0e565b005b6104cf601281565b60405160ff909116815260200161036e565b6104c56104ef3660046147d2565b610e2a565b6104c56105023660046147d2565b610eb1565b6103cd60035481565b6103cd62093a8081565b61052d6105283660046147fc565b610f5a565b60405161036e9291906148ee565b6104c56105493660046149ae565b6110c5565b6105ce61055c3660046147d2565b600b60209081526000928352604080842090915290825290205465ffffffffffff81169066ffffffffffffff66010000000000008204169067ffffffffffffffff6d01000000000000000000000000008204811691750100000000000000000000000000000000000000000090041684565b6040805165ffffffffffff909516855266ffffffffffffff909316602085015267ffffffffffffffff9182169284019290925216606082015260800161036e565b61062261061d3660046147fc565b6112a5565b60405161036e91906149e5565b6103cd60005481565b6103cd6113c8565b6103cd61064e3660046147fc565b6113d9565b6103cd60095481565b6104c561145b565b6103cd60d081565b6103cd61067a3660046148d5565b61146d565b61068761148f565b60405161036e9190600060808201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff604084015116604083015261ffff606084015116606083015292915050565b6106eb6106e63660046147d2565b6114c2565b60405161ffff909116815260200161036e565b6107a861070c3660046147d2565b600860209081526000928352604080842082529183529181902081518083018352815465ffffffffffff808216835261ffff660100000000000092839004811684880152855180870187526001860154808416825284900482168189015286518088018852600287015480851682528590048316818a015287518089019098526003909601549283168752929091041694840194909452929184565b60408051855165ffffffffffff908116825260209687015161ffff908116888401528651821693830193909352948601518216606082015283518516608082015292850151811660a0840152815190931660c0830152909201511660e08201526101000161036e565b6103616040518060400160405280600581526020017f73594c415900000000000000000000000000000000000000000000000000000081525081565b6104c561085b3660046147d2565b611509565b6103cd61086e366004614a71565b611661565b6103cd6108813660046148d5565b6116b1565b6106eb61177d565b61038a61089c3660046147d2565b611798565b6103cd6108af3660046147fc565b611823565b6104c56108c2366004614aa4565b611a8d565b6106eb611def565b6103cd611dfa565b6104c56108e53660046149ae565b611e10565b6103cd6108f83660046147fc565b60046020526000908152604090205481565b6103cd610918366004614ac6565b611fca565b610687604080516080810182526000808252602082018190529181018290526060810191909152506040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925273010000000000000000000000000000000000000090910461ffff16606082015290565b6106226109c03660046147fc565b612443565b6103cd6124ac565b6103cd6109db366004614b2c565b6124c3565b6103cd6109ee3660046147fc565b600a6020526000908152604090205481565b6104c5610a0e366004614b5f565b61254e565b61038a610a213660046147fc565b60026020526000908152604090205460ff1681565b61038a610a443660046147fc565b60016020526000908152604090205460ff1681565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f73594c41593a3a617070726f76653a2050726f6869626974656420416374696f60448201527f6e0000000000000000000000000000000000000000000000000000000000000060648201526000906084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c60209081526040808320805482518185028101850190935280835260609493830182828015610b7d57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610b445790505b50505050509050805167ffffffffffffffff811115610b9e57610b9e614b9f565b604051908082528060200260200182016040528015610c0e57816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610bbc5790505b50915060005b8151811015610d1e5773ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604081208351909190849084908110610c5957610c59614bce565b60209081029190910181015161ffff1682528181019290925260409081016000208151608081018352905465ffffffffffff8116825266ffffffffffffff66010000000000008204169382019390935267ffffffffffffffff6d0100000000000000000000000000840481169282019290925275010000000000000000000000000000000000000000009092041660608201528351849083908110610d0057610d00614bce565b60200260200101819052508080610d1690614c2c565b915050610c14565b5050919050565b600080610d3183612b94565b509050610d3d81612ddd565b9392505050565b600080610d4f612e1a565b509050610d5d600954612ef6565b610d6682612ddd565b600354610d739190614c64565b610d7d9190614c64565b91505090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f73594c41593a3a7472616e7366657246726f6d3a2050726f686962697465642060448201527f416374696f6e00000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b610e16612f08565b610e1e612fa7565b610e27816130d6565b50565b610e32612f08565b610e3a612fa7565b81610e44816130d6565b6000610e4f83613293565b9050610e5b84826132a5565b8373ffffffffffffffffffffffffffffffffffffffff167fe24fb5918dfdd34ee115de98f0d2960d0ce30d6169a74367fd256ff3b5048b7484604051610ea391815260200190565b60405180910390a250505050565b610eb9613629565b8060036000828254610ecb9190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054839290610f05908490614c64565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe906020015b60405180910390a25050565b6060806000610f6884612b94565b509050610f74816136c8565b156110bf5760608101516000610f89836136e2565b90508067ffffffffffffffff811115610fa457610fa4614b9f565b604051908082528060200260200182016040528015610fe957816020015b6040805180820190915260008082526020820152815260200190600190039081610fc25790505b5093508067ffffffffffffffff81111561100557611005614b9f565b60405190808252806020026020018201604052801561104a57816020015b60408051808201909152600080825260208201528152602001906001900390816110235790505b50945060005b84518110156110bb576110638784613755565b85828151811061107557611075614bce565b60200260200101819052508286828151811061109357611093614bce565b60200260200101819052506110a783613895565b9250806110b381614c2c565b915050611050565b5050505b50915091565b6110cd61390c565b611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f73594c41593a3a7365744772616475616c4d696e7465723a206772616475616c60448201527f206d696e7465722063616e6e6f7420626520746865207a65726f20616464726560648201527f7373000000000000000000000000000000000000000000000000000000000000608482015260a401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fd066a75103af5bd5a100de58375e7cf390671150ac63a9f845137e25042bf1589101610f4e565b6112fb6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b5073ffffffffffffffffffffffffffffffffffffffff16600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285015266ffffffffffffff6c01000000000000000000000000909104168185015283518085018552600183015461ffff808216835260ff6201000092839004811684880152606085019390935286518088019097526002850154808216885291909104909116938501939093526080810193909352600301541660a082015290565b6113d660d062093a80614c7c565b81565b6000806113e583612b94565b5073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205490915061141890612ef6565b61142182612ddd565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260409020546114519190614c64565b610d3d9190614c64565b611463612f08565b61146b612fa7565b565b600061147c62093a8083614c7c565b6000546114899190614c64565b92915050565b6040805160808101825260008082526020820181905291810182905260608101829052906114bb612e1a565b5092915050565b600c60205281600052604060002081815481106114de57600080fd5b9060005260206000209060109182820401919006600202915091509054906101000a900461ffff1681565b611511613629565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020548111156115c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a6275726e3a205573657220696e7374616e7420706f776572206260448201527f616c616e636520746f6f206c6f770000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906115fb908490614cb9565b9250508190555080600360008282546116149190614cb9565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df790602001610f4e565b600061166b612f08565b600061167684613293565b9050611697858265ffffffffffff1661168d611def565b61ffff16866139bd565b6116a88165ffffffffffff16612ef6565b95945050505050565b6000805482101561176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f73594c41593a3a6765745472616e636865496e6465783a2054696d65206d757360448201527f74206265206d6f7265206f7220657175616c20746f207468652066697273742060648201527f7472616e6368652074696d650000000000000000000000000000000000000000608482015260a401610ae0565b61177382613dd1565b61ffff1692915050565b60006001611789611def565b6117939190614cd0565b905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73594c41593a3a7472616e736665723a2050726f68696269746564204163746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b600061182d612f08565b6000611837611def565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c60205260408120805461ffff93909316935091905b81811015611a7857600083828154811061188657611886614bce565b6000918252602080832060108304015473ffffffffffffffffffffffffffffffffffffffff8b168452600b82526040808520600f9094166002026101000a90910461ffff16808552928252928390208351608081018552905465ffffffffffff811682526601000000000000810466ffffffffffffff16928201929092526d0100000000000000000000000000820467ffffffffffffffff908116948201949094527501000000000000000000000000000000000000000000909104909216606083015291506119568682613dfa565b15611a635761196a81898461ffff16613e24565b6119749088614c64565b965084611982600186614cb9565b8154811061199257611992614bce565b90600052602060002090601091828204019190066002029054906101000a900461ffff168584815481106119c8576119c8614bce565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555084805480611a0757611a07614cf3565b60008281526020902060107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191820401805461ffff6002600f8516026101000a0219169055905583611a5b81614d22565b945050611a71565b82611a6d81614c2c565b9350505b505061186a565b50611a8284612ef6565b93505050505b919050565b336000908152600b602090815260408083208584529091529020805465ffffffffffff16611b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204e6f206c6f636b757060448201527f20706f736974696f6e20666f756e6400000000000000000000000000000000006064820152608401610ae0565b80547501000000000000000000000000000000000000000000900467ffffffffffffffff168211611bf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020646560448201527f61646c696e652073686f756c6420626520696e207468652066757475726500006064820152608401610ae0565b60d0611bfc8484614cb9565b1115611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020706560448201527f72696f642065786365656473206120746f74616c206f662034207965617273006064820152608401610ae0565b805460009060d090611cbf907501000000000000000000000000000000000000000000900467ffffffffffffffff1685614cb9565b8354611cd3919065ffffffffffff16614c7c565b611cdd9190614d86565b90508060096000828254611cf19190614c64565b9091555050336000908152600a602052604081208054839290611d15908490614c64565b9091555050815481908390600690611d419084906601000000000000900466ffffffffffffff16614d9a565b82546101009290920a66ffffffffffffff8181021990931691909216919091021790555081547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000067ffffffffffffffff851602178255604080518581526020810183905290810184905233907ff105efae42c9c08d5eafed7135b77068bb81a1845393b4473ae79e86c94e97f190606001610ea3565b600061179342613dd1565b6000611793611e07611def565b61ffff1661146d565b611e1861390c565b611ea4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f73594c41593a3a7365744d696e7465723a206d696e7465722063616e6e6f742060448201527f626520746865207a65726f2061646472657373000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f583b0aa0e528532caf4b907c11d7a8158a122fe2a6fb80cd9b09776ebea8d92d9101610f4e565b6000611fd4612f08565b611fdc612fa7565b83611fe6816130d6565b600061200086611ffb36889003880188614dc5565b613f49565b805490915060009061201f906601000000000000900461ffff16613fd0565b825490915065ffffffffffff16806120b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f616c7265616479206c6f636b65640000000000000000000000000000000000006064820152608401610ae0565b60006120c3614050565b905061ffff811615806120e75750835461ffff808316660100000000000090920416115b612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f6d617475726564000000000000000000000000000000000000000000000000006064820152608401610ae0565b83546000906601000000000000900461ffff1661218e611def565b6121989190614cd0565b6121a69061ffff1684614e58565b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600760205260409020805465ffffffffffff928316935085926006916121f49185916601000000000000900416614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555082600560000160068282829054906101000a900465ffffffffffff1661223c9190614e86565b825465ffffffffffff9182166101009390930a92830291909202199091161790555073ffffffffffffffffffffffffffffffffffffffff8a1660009081526007602052604090208054829190600c906122b090849066ffffffffffffff6c0100000000000000000000000090910416614ea5565b92506101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550806005600001600c8282829054906101000a900466ffffffffffffff166122fb9190614ea5565b825466ffffffffffffff9182166101009390930a92830291909202199091161790555084547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016855583548390859060009061236090849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506123ac8a8465ffffffffffff168760000160069054906101000a900461ffff1661ffff168b6139bd565b84546040805165ffffffffffff86168152660100000000000090920461ffff16602083015266ffffffffffffff83169082015273ffffffffffffffffffffffffffffffffffffffff8b16907ff6028e08bd4265711d36773ee2b3ab6b15824a3938c53ce8022919564a1b8d049060600160405180910390a26124358365ffffffffffff16612ef6565b9a9950505050505050505050565b6124996040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b60006124a483612b94565b509392505050565b6000806124b7612e1a565b509050610d7d81612ddd565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a616c6c6f77616e63653a2050726f686962697465642041637460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b612556612f08565b61255e612fa7565b82612568816130d6565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600760209081526040808320815160c081018352815465ffffffffffff80821683526601000000000000808304821684880190815266ffffffffffffff6c010000000000000000000000009485900481168689015287518089018952600188015461ffff808216835260ff62010000928390048116848e01526060808b01949094528b51808d018d5260028c015480841682529390930416828d01526080808a0192909252600390990154891660a089015289519081018a526005548087168252948504909516998501999099529382049093169582019590955273010000000000000000000000000000000000000090940490921693830193909352518251929391926126929190614ec5565b835190915065ffffffffffff16156126b7576126b2828460000151614079565b600083525b602083015165ffffffffffff16156126df576126d78284602001516140b5565b600060208401525b604083015166ffffffffffffff1615612708576127008284604001516140ee565b600060408401525b612711836136c8565b156128915760608301515160808401515161ffff9182169116815b81811161288d5773ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452825291829020825160c081018452815465ffffffffffff8082166080840190815261ffff660100000000000093849004811660a0860152908452865180880188526001860154808416825284900482168188015284870152865180880188526002860154808416825284900482168188015284880152865180880190975260039094015490811686520490911691830191909152606081019190915261280390614139565b73ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000908116825560018201805482169055600282018054821690556003909101805490911690558061288581614c2c565b91505061272c565b5050505b6040518060400160405280600061ffff168152602001600060ff16815250836060018190525082600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160010160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060808201518160020160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060a08201518160030160006101000a81548161ffff021916908361ffff16021790555090505081600560008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160000160136101000a81548161ffff021916908361ffff1602179055509050508673ffffffffffffffffffffffffffffffffffffffff167f828d875bb1fd38ee261c0c069e9bc63df13bf8e7e59acc2385ea66b86c8351378787604051612b3d9291909182521515602082015260400190565b60405180910390a284612b8b576000612b558761416b565b90508065ffffffffffff168265ffffffffffff161115612b89576000612b7b8284614e86565b9050612b8789826132a5565b505b505b50505050505050565b612bea6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760209081526040808320815160c081018352815465ffffffffffff808216835266010000000000008204168286015266ffffffffffffff6c01000000000000000000000000909104168184015282518084018452600183015461ffff808216835260ff62010000928390048116848901526060850193909352855180870190965260028501548082168752919091049091169484019490945260808101929092526003015490911660a082015281612cbe61177d565b90508061ffff168260a0015161ffff1603612cde57509360009350915050565b612ce7826136c8565b15612dca576000612cf6614050565b905061ffff811615612d5c576000612d12878560600151613755565b90505b612d1e846136c8565b8015612d3657508161ffff16816020015161ffff1611155b15612d5a57612d45848261419a565b612d53878560600151613755565b9050612d15565b505b612d6a838361ffff1661425a565b15612dc85760008360a0015183612d819190614cd0565b61ffff16905080846020015165ffffffffffff16612d9f9190614ee6565b84604001818151612db09190614d9a565b66ffffffffffffff169052505061ffff821660a08401525b505b61ffff1660a08201529360019350915050565b6000612dfd612df8836040015166ffffffffffffff16612ef6565b614277565b8251612e109065ffffffffffff16612ef6565b6114899190614c64565b60408051608081018252600080825260208201819052918101829052606081018290529080612e4761177d565b6040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925261ffff7301000000000000000000000000000000000000009092048216606082015294501690505b80836060015161ffff161015612ef15760608301805190612ed882614f0c565b61ffff16905250612ee883614284565b60019150612eb8565b509091565b60006114896509184e72a00083614c7c565b3360009081526002602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f73594c41593a3a5f6f6e6c794772616475616c4d696e7465723a20496e73756660448201527f66696369656e742050726976696c6567657300000000000000000000000000006064820152608401610ae0565b600080612fb2612e1a565b9150915080156130d2578151600580546020808601516040808801516060808a015165ffffffffffff9889167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009097168717660100000000000099909516988902949094177fffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9093169283027fffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff161773010000000000000000000000000000000000000061ffff90951694850217909655815194855292840195909552938201527fb968421445b12044d4cf86ecc7f3f9589111c9efab4b7561360aea60f3e832eb9101610f4e565b5050565b6000806130e283612b94565b91509150801561328e5773ffffffffffffffffffffffffffffffffffffffff831660008181526007602090815260409182902085518154878401518886015165ffffffffffff9384167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009093168317660100000000000094909216938402919091177fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9092169182021784556060808a015180516001870180549289015161ffff9283167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000948516176201000060ff92831681029190911790925560808e0151805160028b018054928d0151918616929096169190911791169091021790915560a08b0151600390960180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169690911695861790558651928352948201929092529384015292917febc99566369f3a0bb7856de228673359eed87e744e506850f424863304607709910160405180910390a35b505050565b60006114896509184e72a00083614d86565b8065ffffffffffff166000036132b9575050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285019081526c0100000000000000000000000090910466ffffffffffffff168286015284518086018652600184015461ffff8082168352620100009182900460ff9081168489015260608601939093528751808901909852600286015480821689529190910490911694860194909452608082019490945260039091015490911660a082015281519091839161339b908390614ec5565b65ffffffffffff9081169091526005805485935090916006916133ca9185916601000000000000900416614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555060006133fc848360800151613755565b90506000613408611def565b90506000613415846136c8565b159050808061342f57508161ffff16836020015161ffff16105b1561347e5760006134438560800151613895565b9050811561345357606085018190525b60808501526040805180820190915265ffffffffffff8616815261ffff83166020820152925061349c565b84836000018181516134909190614ec5565b65ffffffffffff169052505b6134ae836020015161ffff1686614344565b6134bd86856080015185614395565b50505073ffffffffffffffffffffffffffffffffffffffff90921660009081526007602090815260409182902084518154838701519487015166ffffffffffffff166c01000000000000000000000000027fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff65ffffffffffff9687166601000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090931696909316959095171716929092178255606084015180516001840180549284015160ff908116620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000095861661ffff958616171790925560808801518051600288018054929097015190921690920291909316928216929092179190911790915560a09093015160039091018054919093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000919091161790915550565b3360009081526001602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f73594c41593a3a5f6f6e6c794d696e7465723a20496e73756666696369656e7460448201527f2050726976696c656765730000000000000000000000000000000000000000006064820152608401610ae0565b60608101515160009061ffff1615611a8857506001919050565b6060810151608082015160208201518251600093929160ff1690613707906004614f2d565b6137119190614f4e565b816020015160ff168260000151600461372a9190614f2d565b6137349190614f4e565b61373e9190614cd0565b613749906001614f4e565b61ffff16949350505050565b6040805180820182526000808252602080830182905273ffffffffffffffffffffffffffffffffffffffff8616825260088152838220855161ffff16835281529281209284015191929160ff1690036137d95760408051808201909152815465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660010361381c5760408051808201909152600182015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660020361385f5760408051808201909152600282015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b60408051808201909152600382015465ffffffffffff811682526601000000000000900461ffff16602082015291505092915050565b6040805180820190915260008082526020820152815161ffff166000036138bf5760018152919050565b6003826020015160ff1610156138f457815161ffff16815260208201516138e7906001614f6b565b60ff166020820152919050565b8151613901906001614f4e565b61ffff168152919050565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015613999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117939190614f90565b60006139c98383614cb9565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600b60209081526040808320878452909152902080549192509065ffffffffffff1615613aea5780547501000000000000000000000000000000000000000000900467ffffffffffffffff168314613ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f73594c41593a3a6d696e744c6f636b75703a204c6f636b757020706f7369746960448201527f6f6e20616c726561647920657869737473207769746820646966666572656e7460648201527f20646561646c696e650000000000000000000000000000000000000000000000608482015260a401610ae0565b613bed565b613af2611def565b61ffff1683118015613b05575060d08211155b613b91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a6d696e744c6f636b75703a20496e76616c696420646561646c60448201527f696e6500000000000000000000000000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600c6020908152604082208054600181018255908352912060108204018054600f9092166002026101000a61ffff81810219909316928716029190911790555b600060d0613bfb8488614c7c565b613c059190614d86565b90508060096000828254613c199190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff87166000908152600a602052604081208054839290613c53908490614c64565b9091555050815486908390600090613c7490849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550808260000160068282829054906101000a900466ffffffffffffff16613cbc9190614d9a565b825466ffffffffffffff9182166101009390930a928302919092021990911617905550815467ffffffffffffffff8581167501000000000000000000000000000000000000000000027fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff9188166d010000000000000000000000000002919091167fffffff00000000000000000000000000000000ffffffffffffffffffffffffff9092169190911717825560408051878152602081018390529081018690526060810185905273ffffffffffffffffffffffffffffffffffffffff8816907f8d57bc413d172db24c650affb289486236f8cf804335bc881bb5033401acd5da9060800160405180910390a250505050505050565b600062093a8060005483613de59190614cb9565b613def9190614d86565b611489906001614c64565b805160009065ffffffffffff1615801590610d3d5750506060015167ffffffffffffffff16111590565b6000836020015166ffffffffffffff1660096000828254613e459190614cb9565b909155505060208085015173ffffffffffffffffffffffffffffffffffffffff85166000908152600a90925260408220805466ffffffffffffff909216929091613e90908490614cb9565b9091555050835160405183815265ffffffffffff909116915073ffffffffffffffffffffffffffffffffffffffff8416907fdebd6c689e64ba7da4f3606a398615e9e8df6a117b5fb6fe720db13a3cd34f5a9060200160405180910390a273ffffffffffffffffffffffffffffffffffffffff9092166000908152600b602090815260408083209383529290522080547fffffff0000000000000000000000000000000000000000000000000000000000169055919050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600860209081526040808320845161ffff168452825282209083015160ff168203613f92579050806114bb565b826020015160ff16600103613fac578060010191506114bb565b826020015160ff16600203613fc6578060020191506114bb565b6003019392505050565b600080613fde600584614d86565b6000818152600660205260408120919250613ffa600586614fad565b90508060000361400c57509392505050565b8060010361401f57506001019392505050565b8060020361403257506002019392505050565b8060030361404557506003019392505050565b506004019392505050565b60008061405b611def565b61ffff16905060d081111561407557610d7d60d082614cb9565b5090565b815165ffffffffffff80831691161015614094575060009052565b80826000018181516140a69190614e86565b65ffffffffffff169052505050565b8065ffffffffffff16826020015165ffffffffffff1610156140dc57600060208301525050565b80826020018181516140a69190614e86565b8066ffffffffffffff16826040015166ffffffffffffff16101561411757600060408301525050565b80826040018181516141299190614ea5565b66ffffffffffffff169052505050565b80516141449061454f565b614151816020015161454f565b61415e816040015161454f565b610e27816060015161454f565b600061417682613293565b90508161418a8265ffffffffffff16612ef6565b1015611a885780610d3d81614fc1565b60006141ad826020015161ffff166146a1565b825160a0850151919250906000906141c59084614cd0565b61ffff16905080856020015165ffffffffffff166141e39190614ee6565b856040018181516141f49190614d9a565b66ffffffffffffff16905250600061420b836146ba565b905061421786826140ee565b82866000018181516142299190614ec5565b65ffffffffffff1690525061423e86846140b5565b614247866146cf565b50505061ffff1660a09092019190915250565b6000818360a0015161ffff16108015610d3d5750610d3d836136c8565b600061148960d083614d86565b806020015165ffffffffffff16816040018181516142a29190614d9a565b66ffffffffffffff16905250606081015160d061ffff90911610610e2757600060d0826060015161ffff166142d79190614cb9565b6142e2906001614c64565b905060006142ef82613fd0565b5465ffffffffffff169050801561328e57600061430b826146ba565b905061431784826140ee565b61432184836140b5565b81846000018181516143339190614ec5565b65ffffffffffff1690525050505050565b600061434f83613fd0565b80549091508290829060009061436e90849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600860209081526040808320855161ffff1684528252822090840151909160ff909116900361442a5781518154602084015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90921691909117178155614549565b826020015160ff16600103614490578151600182018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b826020015160ff166002036144f6578151600282018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b8151600382018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff909316929092179190911790555b50505050565b805165ffffffffffff1615610e27576000614571826020015161ffff16613fd0565b8251815491925065ffffffffffff9081169116106145cb578151815482906000906145a590849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050565b805482516145e19165ffffffffffff1690614e86565b65ffffffffffff166001036146195780547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016905550565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f73594c41593a3a5f72656d6f7665557365725472616e63686546726f6d476c6f60448201527f62616c3a205472616e63686520707265636973696f6e000000000000000000006064820152608401610ae0565b600060016146b060d084614c64565b6114899190614cb9565b600061148960d065ffffffffffff8416614c7c565b60808101515160608201515161ffff9081169116148015614705575080608001516020015160ff1681606001516020015160ff16145b15614726576040805180820190915260008082526020820152606082015250565b6147338160600151613895565b606082015250565b600060208083528351808285015260005b818110156147685785810183015185820160400152820161474c565b8181111561477a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a8857600080fd5b600080604083850312156147e557600080fd5b6147ee836147ae565b946020939093013593505050565b60006020828403121561480e57600080fd5b610d3d826147ae565b602080825282518282018190526000919060409081850190868401855b8281101561488c578151805165ffffffffffff1685528681015166ffffffffffffff16878601528581015167ffffffffffffffff90811687870152606091820151169085015260809093019290850190600101614834565b5091979650505050505050565b6000806000606084860312156148ae57600080fd5b6148b7846147ae565b92506148c5602085016147ae565b9150604084013590509250925092565b6000602082840312156148e757600080fd5b5035919050565b60408082528351828201819052600091906020906060850190828801855b8281101561494057614930848351805161ffff16825260209081015160ff16910152565b928501929084019060010161490c565b5050508481038286015285518082528683019183019060005b8181101561499257614982838551805165ffffffffffff16825260209081015161ffff16910152565b9284019291850191600101614959565b509098975050505050505050565b8015158114610e2757600080fd5b600080604083850312156149c157600080fd5b6149ca836147ae565b915060208301356149da816149a0565b809150509250929050565b60006101008201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff60408401511660408301526060830151614a3e6060840182805161ffff16825260209081015160ff16910152565b506080830151805161ffff1660a0840152602081015160ff1660c08401525061ffff60a08401511660e083015292915050565b600080600060608486031215614a8657600080fd5b614a8f846147ae565b95602085013595506040909401359392505050565b60008060408385031215614ab757600080fd5b50508035926020909101359150565b60008060008385036080811215614adc57600080fd5b614ae5856147ae565b935060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215614b1757600080fd5b50602084019150606084013590509250925092565b60008060408385031215614b3f57600080fd5b614b48836147ae565b9150614b56602084016147ae565b90509250929050565b600080600060608486031215614b7457600080fd5b614b7d846147ae565b9250602084013591506040840135614b94816149a0565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c5d57614c5d614bfd565b5060010190565b60008219821115614c7757614c77614bfd565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614cb457614cb4614bfd565b500290565b600082821015614ccb57614ccb614bfd565b500390565b600061ffff83811690831681811015614ceb57614ceb614bfd565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081614d3157614d31614bfd565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614d9557614d95614d57565b500490565b600066ffffffffffffff808316818516808303821115614dbc57614dbc614bfd565b01949350505050565b600060408284031215614dd757600080fd5b6040516040810181811067ffffffffffffffff82111715614e21577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052823561ffff81168114614e3657600080fd5b8152602083013560ff81168114614e4c57600080fd5b60208201529392505050565b600065ffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b02949350505050565b600065ffffffffffff83811690831681811015614ceb57614ceb614bfd565b600066ffffffffffffff83811690831681811015614ceb57614ceb614bfd565b600065ffffffffffff808316818516808303821115614dbc57614dbc614bfd565b600066ffffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818103614f2357614f23614bfd565b6001019392505050565b600061ffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818516808303821115614dbc57614dbc614bfd565b600060ff821660ff84168060ff03821115614f8857614f88614bfd565b019392505050565b600060208284031215614fa257600080fd5b8151610d3d816149a0565b600082614fbc57614fbc614d57565b500690565b600065ffffffffffff808316818103614f2357614f23614bfd56fea26469706673582212207cfe728256ec43cef057e55d308d31e516142f7aaa745a7a6bf6d227771cef8064736f6c634300080d0033000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", + "nonce": "0x108", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x5d9418", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x467e5bcc80a5dec9ef99fd3fb05a768f3862505690d648d8695944371a08f07e", + "transactionIndex": "0xa", + "blockHash": "0x775276fc315bcbdd3850a59178a1f4952eeb3bd6234660e8c565cb0c08c1eac0", + "blockNumber": "0x164e6c4", + "gasUsed": "0x4209da", + "effectiveGasPrice": "0x11617e70d", + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "to": null, + "contractAddress": "0x15eff5cdeb0b3b26f633ba523fdb2bb9d862d74e" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x147c0d9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xc0328652092a23da6081f4ba49c5750502b74108b19d01d2a7cb7d29df54f42d", + "transactionIndex": "0xf8", + "blockHash": "0x038aa03eb5d3127ec497c606a22c841ae779f227760266f4503ec194e0f3b9b4", + "blockNumber": "0x164e6c6", + "gasUsed": "0x441bbb", + "effectiveGasPrice": "0x11617e70d", + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "to": null, + "contractAddress": "0x3d79fbbf918327968e75dd0f5b1d25ac65c8dfa2" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1758197678017, + "chain": 1, + "commit": "823e888" +} \ No newline at end of file diff --git a/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-latest.json b/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-latest.json new file mode 100644 index 0000000..2f9becd --- /dev/null +++ b/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-latest.json @@ -0,0 +1,88 @@ +{ + "transactions": [ + { + "hash": "0x467e5bcc80a5dec9ef99fd3fb05a768f3862505690d648d8695944371a08f07e", + "transactionType": "CREATE", + "contractName": "YelayStaking", + "contractAddress": "0x15eff5cdeb0b3b26f633ba523fdb2bb9d862d74e", + "function": null, + "arguments": [ + "0xAEe5913FFd19dBcA4Fd1eF6F3925ed0414407d37", + "0xC0F7B477e05B29097546dAae2E3dF2decBeB405d", + "0x705f023b2Ce85B0c7039B43C8e217F61a3A3bb13", + "0x3E246beb1A0daF94FB376C44cAc2D1C8B979C0d0", + "0xAB865D95A574511a6c893C38A4D892275ca70570" + ], + "transaction": { + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "gas": "0x55d99b", + "value": "0x0", + "input": "0x6101206040523480156200001257600080fd5b506040516200504b3803806200504b83398101604081905262000035916200010b565b806001600160a01b038116620000c35760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b0390811660805294851660a0525091831660c052821660e05216610100526200017b565b80516001600160a01b03811681146200010657600080fd5b919050565b600080600080600060a086880312156200012457600080fd5b6200012f86620000ee565b94506200013f60208701620000ee565b93506200014f60408701620000ee565b92506200015f60608701620000ee565b91506200016f60808701620000ee565b90509295509295909350565b60805160a05160c05160e05161010051614dd5620002766000396000818161055a015281816124b101528181613fbc01526142a10152600081816104ea0152818161254701528181613ba801528181613d100152613ed10152600081816105b401528181610a63015281816110b00152818161119e01528181611242015281816125fa01528181612c8301528181612e53015281816132ad0152613dc301526000818161044e015281816112d2015281816116750152818161219f0152818161229a0152818161248201528181612f1701528181613a6001528181613aa101528181613f8d015261403101526000612bb40152614dd56000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c80638129fc1c11610160578063b51609b4116100d8578063ec199a861161008c578063f122977711610071578063f122977714610617578063f4de10ac14610657578063fb6138ab1461066a57600080fd5b8063ec199a86146105f1578063f051c8c31461060457600080fd5b8063ccd83835116100bd578063ccd83835146105af578063d1e6044a146105d6578063d6fbddd7146105e957600080fd5b8063b51609b41461057c578063cbf9fe5f1461058f57600080fd5b80639ec8f9d51161012f578063a4d5e67c11610114578063a4d5e67c1461052f578063a694fc3a14610542578063acc2166a1461055557600080fd5b80639ec8f9d5146104e55780639fa451021461050c57600080fd5b80638129fc1c1461049e578063817b1cd2146104a657806383e25f8a146104af5780639a4c5719146104c257600080fd5b8063467e27f41161020e578063638634ee116101c257806373c2ad9c116101a757806373c2ad9c14610470578063780d9d2d146104835780637bb7bed11461048b57600080fd5b8063638634ee1461042157806372f702f31461044957600080fd5b8063540bb5dd116101f3578063540bb5dd146103aa57806356891412146103bd5780635f56a31a146103c657600080fd5b8063467e27f4146103645780634c86c3161461039757600080fd5b8063211dc32d116102655780632e0b00451161024a5780632e0b00451461032b5780632e17de781461033e5780632ee409081461035157600080fd5b8063211dc32d146102f857806327e235e31461030b57600080fd5b8063037ff3931461029757806310098ad5146102ac5780631338736f146102d2578063189ab267146102e5575b600080fd5b6102aa6102a536600461474f565b61075f565b005b6102bf6102ba366004614788565b610883565b6040519081526020015b60405180910390f35b6102aa6102e03660046147a5565b610923565b6102aa6102f33660046147c7565b6109b2565b6102bf610306366004614803565b610b44565b6102bf610319366004614788565b60376020526000908152604090205481565b6102aa610339366004614845565b610c50565b6102aa61034c36600461487a565b610e59565b6102aa61035f366004614893565b611338565b610387610372366004614788565b603a6020526000908152604090205460ff1681565b60405190151581526020016102c9565b6102aa6103a5366004614788565b611735565b6102aa6103b83660046148bf565b6118b0565b6102bf603b5481565b6103fc6103d4366004614788565b60396020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b61043461042f366004614788565b611a42565b60405163ffffffff90911681526020016102c9565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61047e3660046148bf565b611a81565b6034546102bf565b6103fc61049936600461487a565b611db2565b6102aa611de9565b6102bf60365481565b6102aa6104bd3660046148fd565b611f0d565b6103876104d0366004614788565b60386020526000908152604090205460ff1681565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b61038761051a366004614788565b60356020526000908152604090205460ff1681565b6102aa61053d366004614788565b61204c565b6102aa61055036600461487a565b612100565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61058a366004614932565b612204565b6102bf61059d366004614788565b603c6020526000908152604090205481565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa6105e4366004614974565b612399565b6102bf612516565b6102aa6105ff366004614974565b61266e565b6102aa61061236600461474f565b6127b1565b61062a610625366004614788565b6128c8565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b6102aa6106653660046149c0565b612a0e565b6106f0610678366004614788565b6033602052600090815260409020805460019091015463ffffffff808316926401000000008082048316936801000000000000000090920477ffffffffffffffffffffffffffffffffffffffffffffffff1692821691047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1685565b6040805163ffffffff9687168152948616602086015277ffffffffffffffffffffffffffffffffffffffffffffffff909316928401929092529290921660608201527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909116608082015260a0016102c9565b610767612b83565b6107f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152603a602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f875e6b685dc796d88ea0d32a721c8114d31e77f43a6bb0879c32e7321bb59df191015b60405180910390a25050565b60003315610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f59656c61795374616b696e673a3a617661696c61626c653a204f6e6c7920737460448201527f617469632d63616c6c61626c650000000000000000000000000000000000000060648201526084016107ef565b61091c82612c39565b9392505050565b60026001540361098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361099e81612d5b565b6109a9338484612d6d565b50506001805550565b600260015403610a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001556040517fd131ef5700000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d131ef5790610a9c90339087908790600401614ab5565b6020604051808303816000875af1158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190614b17565b603b805482019055336000818152603c6020908152604091829020805485019055815184815290810186905292935090917f1f04ae837474cd4ca082595601e32f6cd5de50b09ee3b24f3b3ccded6869b872910160405180910390a250506001805550565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260336020908152604080832093851683526037909152812054909190808303610bb5575073ffffffffffffffffffffffffffffffffffffffff83166000908152600390910160205260409020549050610c4a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526002830160209081526040808320546003860190925290912054670de0b6b3a764000082610bfe896128c8565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610c269190614b5f565b610c309085614b76565b610c3a9190614bb3565b610c449190614bee565b93505050505b92915050565b610c58612b83565b610ce4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b816000610cf18282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604090206001015463ffffffff80851691161115610d8f5773ffffffffffffffffffffffffffffffffffffffff84166000908152603360205260409020600181015481547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1663ffffffff90911664010000000002179055610dea565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1664010000000063ffffffff8616021790555b73ffffffffffffffffffffffffffffffffffffffff841660008181526033602090815260409182902054915164010000000090920463ffffffff1682527f21b2dd8950fc3a17e42d75bdfba3bf13f5a451f2d4b1dab7ab7f8d44f8a0692691015b60405180910390a250505050565b600260015403610ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610f7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b33610f8781612d5b565b600080610f9333612c39565b91509150600084118015610fa75750808411155b611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a756e7374616b653a20556e617661696c616260448201527f6c6520616d6f756e74207265717565737465640000000000000000000000000060648201526084016107ef565b603b80548390039055336000908152603c6020908152604080832080548690039055603680548890039055603790915281208054869003908190559003611126576040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260006024820152600160448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b15801561110957600080fd5b505af115801561111d573d6000803e3d6000fd5b505050506112b8565b60008483101561113f5761113a8386614b5f565b611142565b60005b905060008584101561115557600061115f565b61115f8685614b5f565b6040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260248101849052600060448201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b1580156111f757600080fd5b505af115801561120b573d6000803e3d6000fd5b50506040517f3f9a6020000000000000000000000000000000000000000000000000000000008152336004820152602481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169250633f9a60209150604401600060405180830381600087803b15801561129d57600080fd5b505af11580156112b1573d6000803e3d6000fd5b5050505050505b6112f973ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633866130df565b60405184815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f759060200160405180910390a25050600180555050565b6002600154036113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015533600090815260386020526040902054829060ff16806113cc57506113cc612b83565b61147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2043616e6e6f74207374616b6520666f72206f74686572206164647265737360648201527f6573000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260376020526040902054156116475773ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541661155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a204164647265737320616c7265616479207374616b6564000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260396020526040902054163314806115955750611595612b83565b611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2041646472657373207374616b656420627920616e6f74686572206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b8261165181612d5b565b61165b84846131b3565b61169d73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b73ffffffffffffffffffffffffffffffffffffffff84166000818152603960205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590519091907ff27841bf2ce46c8c33a68e103ff4238ad9192a4156d62c4b449f834e914d1291906117239087815260200190565b60405180910390a35050600180555050565b3360009081526038602052604090205460ff16801561177a575073ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541633145b806117885750611788612b83565b61183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f59656c61795374616b696e673a3a616c6c6f77556e7374616b65466f723a204360448201527f616e6e6f7420616c6c6f7720756e7374616b696e6720666f722061646472657360648201527f7300000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff811660008181526039602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055513392917f168f8317dbd30ba6270b791af2ed458991c1b3750d39d4b0019978debde8144591a350565b6118b8612b83565b611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8581169190911782556001820154919291169003611a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f59656c61795374616b696e673a3a6e6f74696679526577617264416d6f756e7460448201527f3a20546f6b656e206e6f7420796574206164646564000000000000000000000060648201526084016107ef565b611a3c848361336d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040812054610c4a904290640100000000900463ffffffff16613726565b611a89612b83565b611b15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020908152604080832060359092529091205460ff1615611bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f59656c61795374616b696e673a3a616464546f6b656e3a2043616e6e6f74206160448201527f646420626c61636b6c697374656420746f6b656e00000000000000000000000060648201526084016107ef565b8263ffffffff16600003611c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a616464546f6b656e3a20526577617264206460448201527f75726174696f6e2063616e6e6f7420626520300000000000000000000000000060648201526084016107ef565b600181015463ffffffff1615611d04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f59656c61795374616b696e673a3a616464546f6b656e3a20546f6b656e20616c60448201527f726561647920616464656400000000000000000000000000000000000000000060648201526084016107ef565b603480546001810182556000919091527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c10180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff84161781558115611a3c57611a3c848361336d565b60348181548110611dc257600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600054610100900460ff16611e045760005460ff1615611e08565b303b155b611e94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff16158015611ed357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b611edb61373b565b8015611f0a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b600260015403611f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b6002600155336000908152603a602052604090205460ff1680611f9f5750611f9f612b83565b61202d57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f59656c61795374616b696e673a3a63616e4c6f636b466f72416464726573733a60448201527f2043616e6e6f74206c6f636b20666f72206f746865722061646472657373657360648201526084016107ef565b8261203781612d5b565b612042848484612d6d565b5050600180555050565b612054612b83565b6120e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b806120ea816137dc565b8160006120f78282612f8d565b611a3c8461389e565b60026001540361216c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361217b81612d5b565b61218533836131b3565b6121c773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308561330f565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a2505060018055565b61220c612b83565b612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f59656c61795374616b696e673a3a7265636f76657245524332303a2043616e6e60448201527f6f7420776974686472617720746865207374616b696e6720746f6b656e00000060648201526084016107ef565b61239473ffffffffffffffffffffffffffffffffffffffff841682846130df565b505050565b600260015403612405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015560006124163383613a5c565b9050801561250e5761242733613c6d565b816124355761243533613ccb565b61243f33826131b3565b6040517fcd8515cf00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b1580156124f557600080fd5b505af1158015612509573d6000803e3d6000fd5b505050505b505060018055565b6040517f5fd619650000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635fd61965906024016020604051808303816000875af11580156125a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c99190614b17565b6040517f2e638b5f0000000000000000000000000000000000000000000000000000000081523360048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e638b5f90602401600060405180830381600087803b15801561265357600080fd5b505af1158015612667573d6000803e3d6000fd5b5050505090565b6002600154036126da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b61279b33613e22565b80156127aa576127aa33613e80565b5060018055565b6127b9612b83565b612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff821660008181526038602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f772c7bbbb43be2b0e7bb7f68909195e3d9d6454e330539807adc92c90a5141439101610877565b73ffffffffffffffffffffffffffffffffffffffff811660009081526033602052604081206036548203612926576001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b600181015460009063ffffffff1661293d85611a42565b6129479190614c06565b63ffffffff1690508060000361298857506001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b6036548254612a0691906129c29068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1684614b76565b6129cc9190614bb3565b6001840154612a01919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b61408c565b949350505050565b600260015403612a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b60005b8251811015612b7357612b61838281518110612b5357612b53614c2b565b60200260200101513361413e565b80612b6b81614c5a565b915050612b35565b50801561250e5761250e33613e80565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015612c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c349190614c92565b905090565b6040517fab95e67e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015260009182917f0000000000000000000000000000000000000000000000000000000000000000169063ab95e67e906024016020604051808303816000875af1158015612ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf09190614b17565b73ffffffffffffffffffffffffffffffffffffffff84166000908152603c6020526040902054909250612d24908390614b5f565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260376020526040902054612d549190614b5f565b9050915091565b612d6481613c6d565b611f0a81613ccb565b60008211612dfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f59656c61795374616b696e673a3a5f6c6f636b3a2043616e6e6f74206c6f636b60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107ef565b6040517f9e52c75200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390526000917f000000000000000000000000000000000000000000000000000000000000000090911690639e52c752906064016020604051808303816000875af1158015612e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec29190614b17565b603b80548201905573ffffffffffffffffffffffffffffffffffffffff8086166000908152603c60209081526040808320805486019055603680548901905560379091529020805486019055909150612f3f907f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff8616917fd4665e3049283582ba6f9eba07a5b3e12dab49e02da99e8927a47af5d134bea59101610e4b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260409020612fbb836128c8565b8160010160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555061301683611a42565b6001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905573ffffffffffffffffffffffffffffffffffffffff821615612394576130738383610b44565b73ffffffffffffffffffffffffffffffffffffffff929092166000908152600382016020908152604080832094909455600183015460029093019052919091206401000000009091047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526123949084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261435a565b60008111613242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f59656c61795374616b696e673a3a5f7374616b653a2043616e6e6f742073746160448201527f6b6520300000000000000000000000000000000000000000000000000000000060648201526084016107ef565b603680548201905573ffffffffffffffffffffffffffffffffffffffff82811660008181526037602052604090819020805485019055517f3f9a60200000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f000000000000000000000000000000000000000000000000000000000000000090911690633f9a602090604401600060405180830381600087803b1580156132f357600080fd5b505af1158015613307573d6000803e3d6000fd5b505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052611a3c9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613131565b81600061337a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902077ffffffffffffffffffffffffffffffffffffffffffffffff6133ca670de0b6b3a764000086614b76565b60018301546133ff919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b111561348d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a5f6e6f74696679526577617264416d6f756e60448201527f743a2052657761726420616d6f756e7420746f6f20626967000000000000000060648201526084016107ef565b80546000906134a29063ffffffff1642614caf565b8254909150640100000000900463ffffffff1642106135855781546134e89063ffffffff166134d9670de0b6b3a764000088614b76565b6134e39190614bb3565b614466565b825477ffffffffffffffffffffffffffffffffffffffffffffffff91909116680100000000000000000267ffffffffffffffff8216811784556040805188815263ffffffff9283169290931691909117602083015273ffffffffffffffffffffffffffffffffffffffff8816917f6a6f77044107a33658235d41bedbbaf2fe9ccdceb313143c947a5e76e1ec8474910160405180910390a26136b5565b81546000906135a3904290640100000000900463ffffffff16614b5f565b83549091506000906135db9068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1683614b76565b845490915060009061360a9063ffffffff1683613600670de0b6b3a76400008c614b76565b6134d99190614bee565b855477ffffffffffffffffffffffffffffffffffffffffffffffff8216680100000000000000000267ffffffffffffffff821681178855604080518c81526020810187905263ffffffff92831693831693909317908301528616606082015290915073ffffffffffffffffffffffffffffffffffffffff8a16907f12b903bd655ecbcd9e3c889d933351dee4800a3a080c2e8538dbe79be0143fc79060800160405180910390a25050505b60018201805463ffffffff4281167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009092169190911790915582549116640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff90911617905550505050565b6000818311613735578261091c565b50919050565b600054610100900460ff166137d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b6137da614510565b565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040902054640100000000900463ffffffff164211611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f59656c61795374616b696e673a3a5f6f6e6c7946696e69736865643a2052657760448201527f617264206e6f742066696e69736865640000000000000000000000000000000060648201526084016107ef565b60345460005b81811015612394578273ffffffffffffffffffffffffffffffffffffffff16603482815481106138d6576138d6614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1603613a4a57603461390a600184614b5f565b8154811061391a5761391a614c2b565b6000918252602090912001546034805473ffffffffffffffffffffffffffffffffffffffff909216918390811061395357613953614c2b565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060348054806139ac576139ac614cd7565b60008281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560405173ffffffffffffffffffffffffffffffffffffffff8516917f755c47ac85b75fe2251607db5a480aac818b88bb535814bf1e3c4784ae4f6baa91a2505050565b80613a5481614c5a565b9150506138a4565b60007f000000000000000000000000000000000000000000000000000000000000000083613a8a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600090815260336020908152604080832093891683526003840190915290205493508315613b515773ffffffffffffffffffffffffffffffffffffffff86166000908152600382016020526040808220919091555133907f6675fb32d259af2b7287aeeead9dc867fe8ca2cf653265dfadd302512ab59f0690613b489087815260200190565b60405180910390a25b8415613c6457613b6086613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c179190614b17565b90508015613c6257613c298186614bee565b60405181815290955033907fa73ffcc7352d89c062bc4e024ef35bf0227d67ac65ad1c8b334260a85a9e1e359060200160405180910390a25b505b50505092915050565b60345460005b8181101561239457613cb960348281548110613c9157613c91614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684612f8d565b80613cc381614c5a565b915050613c73565b6040517f5fd6196500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635fd61965906024016020604051808303816000875af1158015613d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7d9190614b17565b506040517f2e638b5f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690632e638b5f90602401600060405180830381600087803b158015613e0757600080fd5b505af1158015613e1b573d6000803e3d6000fd5b5050505050565b60345460005b8181101561239457613e6e60348281548110613e4657613e46614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461413e565b80613e7881614c5a565b915050613e28565b613e8981613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f409190614b17565b90508015614088576040517fcd8515cf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b15801561400057600080fd5b505af1158015614014573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116825260208201869052861693507f7d72689587d6992abf89f27bfc51b5ca89f108900547aa61628552e1e8e90bd0925001610877565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f323420626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b5090565b818161414a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604081208054909163ffffffff9091169003614209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f59656c61795374616b696e673a3a5f6765745265776172643a2042616420726560448201527f7761726420746f6b656e0000000000000000000000000000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260038201602052604090205480156133075773ffffffffffffffffffffffffffffffffffffffff858116600081815260038501602052604080822091909155517fcd8515cf00000000000000000000000000000000000000000000000000000000815260048101919091528782166024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063cd8515cf90606401600060405180830381600087803b1580156142e757600080fd5b505af11580156142fb573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8a8116825260208201869052891693507f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e92500160405180910390a2505050505050565b60006143bc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166145ad9092919063ffffffff16565b80519091501561239457808060200190518101906143da9190614c92565b612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107ef565b600077ffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f323820626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff166145a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b60018055565b6060612a0684846000858573ffffffffffffffffffffffffffffffffffffffff85163b614636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107ef565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161465f9190614d32565b60006040518083038185875af1925050503d806000811461469c576040519150601f19603f3d011682016040523d82523d6000602084013e6146a1565b606091505b50915091506146b18282866146bc565b979650505050505050565b606083156146cb57508161091c565b8251156146db5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef9190614d4e565b73ffffffffffffffffffffffffffffffffffffffff81168114611f0a57600080fd5b8015158114611f0a57600080fd5b803561474a81614731565b919050565b6000806040838503121561476257600080fd5b823561476d8161470f565b9150602083013561477d81614731565b809150509250929050565b60006020828403121561479a57600080fd5b813561091c8161470f565b600080604083850312156147b857600080fd5b50508035926020909101359150565b60008082840360608112156147db57600080fd5b60408112156147e957600080fd5b50919360408501359350915050565b803561474a8161470f565b6000806040838503121561481657600080fd5b82356148218161470f565b9150602083013561477d8161470f565b803563ffffffff8116811461474a57600080fd5b6000806040838503121561485857600080fd5b82356148638161470f565b915061487160208401614831565b90509250929050565b60006020828403121561488c57600080fd5b5035919050565b600080604083850312156148a657600080fd5b82356148b18161470f565b946020939093013593505050565b6000806000606084860312156148d457600080fd5b83356148df8161470f565b92506148ed60208501614831565b9150604084013590509250925092565b60008060006060848603121561491257600080fd5b833561491d8161470f565b95602085013595506040909401359392505050565b60008060006060848603121561494757600080fd5b83356149528161470f565b92506020840135915060408401356149698161470f565b809150509250925092565b60006020828403121561498657600080fd5b813561091c81614731565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156149d357600080fd5b823567ffffffffffffffff808211156149eb57600080fd5b818501915085601f8301126149ff57600080fd5b8135602082821115614a1357614a13614991565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108682111715614a5657614a56614991565b604052928352818301935084810182019289841115614a7457600080fd5b948201945b83861015614a9957614a8a866147f8565b85529482019493820193614a79565b9650614aa8905087820161473f565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff8416815260808101833561ffff8116808214614ae557600080fd5b8060208501525050602084013560ff8116808214614b0257600080fd5b60408401525060609091019190915292915050565b600060208284031215614b2957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614b7157614b71614b30565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bae57614bae614b30565b500290565b600082614be9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115614c0157614c01614b30565b500190565b600063ffffffff83811690831681811015614c2357614c23614b30565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c8b57614c8b614b30565b5060010190565b600060208284031215614ca457600080fd5b815161091c81614731565b600063ffffffff808316818516808303821115614cce57614cce614b30565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60005b83811015614d21578181015183820152602001614d09565b83811115611a3c5750506000910152565b60008251614d44818460208701614d06565b9190910192915050565b6020815260008251806020840152614d6d816040850160208701614d06565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220531900718a54d29e179192854d9c39e1e75835747533bac072bc3923a607114f64736f6c634300080d0033000000000000000000000000aee5913ffd19dbca4fd1ef6f3925ed0414407d37000000000000000000000000c0f7b477e05b29097546daae2e3df2decbeb405d000000000000000000000000705f023b2ce85b0c7039b43c8e217f61a3a3bb130000000000000000000000003e246beb1a0daf94fb376c44cac2d1c8b979c0d0000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", + "nonce": "0x107", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0xc0328652092a23da6081f4ba49c5750502b74108b19d01d2a7cb7d29df54f42d", + "transactionType": "CREATE", + "contractName": "sYLAY", + "contractAddress": "0x3d79fbbf918327968e75dd0f5b1d25ac65c8dfa2", + "function": null, + "arguments": [ + "0xAB865D95A574511a6c893C38A4D892275ca70570" + ], + "transaction": { + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "gas": "0x588a73", + "value": "0x0", + "input": "0x60a06040523480156200001157600080fd5b5060405162005135380380620051358339810160408190526200003491620000d5565b806001600160a01b038116620000c25760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b03166080525062000107565b600060208284031215620000e857600080fd5b81516001600160a01b03811681146200010057600080fd5b9392505050565b60805161501262000123600039600061393d01526150126000f3fe608060405234801561001057600080fd5b50600436106103205760003560e01c806388278207116101a7578063cbfd3a43116100ee578063d7febbca11610097578063e4c4949511610071578063e4c4949514610a00578063edcd508a14610a13578063f46eccc414610a3657600080fd5b8063d7febbca146109c5578063dd62ed3e146109cd578063e42084df146109e057600080fd5b8063d131ef57116100c8578063d131ef571461090a578063d4f54eae1461091d578063d6a182b3146109b257600080fd5b8063cbfd3a43146108cf578063cf456ae7146108d7578063d09f88b5146108ea57600080fd5b8063a04d804311610150578063ab95e67e1161012a578063ab95e67e146108a1578063c8800d1c146108b4578063c8a168ef146108c757600080fd5b8063a04d804314610873578063a5ef7fab14610886578063a9059cbb1461088e57600080fd5b806395d89b411161018157806395d89b41146108115780639dc29fac1461084d5780639e52c7521461086057600080fd5b8063882782071461067f5780638afd9bc4146106d85780638c2a8034146106fe57600080fd5b806344b066f51161026b5780635eb5164d116102145780637a1957ca116101ee5780637a1957ca1461065c5780637a81cf261461066457806385cf95ac1461066c57600080fd5b80635eb5164d1461063857806370a082311461064057806378362cd61461065357600080fd5b80635b1534cb116102455780635b1534cb1461054e5780635b4653441461060f5780635df0f4b61461062f57600080fd5b806344b066f514610510578063468682c01461051a5780635638f3dd1461053b57600080fd5b80632d43b867116102cd5780633f9a6020116102a75780633f9a6020146104e157806340c10f19146104f457806343481a181461050757600080fd5b80632d43b867146103f65780632e638b5f146104b2578063313ce567146104c757600080fd5b806316349cff116102fe57806316349cff146103ba57806318160ddd146103db57806323b872dd146103e357600080fd5b806306fdde0314610325578063095ea7b31461037757806312fb31751461039a575b600080fd5b6103616040518060400160405280600c81526020017f5374616b65642059656c6179000000000000000000000000000000000000000081525081565b60405161036e919061473b565b60405180910390f35b61038a6103853660046147d2565b610a59565b604051901515815260200161036e565b6103ad6103a83660046147fc565b610ae9565b60405161036e9190614817565b6103cd6103c83660046147fc565b610d25565b60405190815260200161036e565b6103cd610d44565b61038a6103f1366004614899565b610d83565b6104756104043660046148d5565b60066020908152600091825260409182902082518083018452815465ffffffffffff9081168252845180850186526001840154821681528551808601875260028501548316815286518087018852600386015484168152875196870190975260049094015490911684529093909285565b60408051955165ffffffffffff9081168752945185166020870152925184169285019290925251821660608401525116608082015260a00161036e565b6104c56104c03660046147fc565b610e0e565b005b6104cf601281565b60405160ff909116815260200161036e565b6104c56104ef3660046147d2565b610e2a565b6104c56105023660046147d2565b610eb1565b6103cd60035481565b6103cd62093a8081565b61052d6105283660046147fc565b610f5a565b60405161036e9291906148ee565b6104c56105493660046149ae565b6110c5565b6105ce61055c3660046147d2565b600b60209081526000928352604080842090915290825290205465ffffffffffff81169066ffffffffffffff66010000000000008204169067ffffffffffffffff6d01000000000000000000000000008204811691750100000000000000000000000000000000000000000090041684565b6040805165ffffffffffff909516855266ffffffffffffff909316602085015267ffffffffffffffff9182169284019290925216606082015260800161036e565b61062261061d3660046147fc565b6112a5565b60405161036e91906149e5565b6103cd60005481565b6103cd6113c8565b6103cd61064e3660046147fc565b6113d9565b6103cd60095481565b6104c561145b565b6103cd60d081565b6103cd61067a3660046148d5565b61146d565b61068761148f565b60405161036e9190600060808201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff604084015116604083015261ffff606084015116606083015292915050565b6106eb6106e63660046147d2565b6114c2565b60405161ffff909116815260200161036e565b6107a861070c3660046147d2565b600860209081526000928352604080842082529183529181902081518083018352815465ffffffffffff808216835261ffff660100000000000092839004811684880152855180870187526001860154808416825284900482168189015286518088018852600287015480851682528590048316818a015287518089019098526003909601549283168752929091041694840194909452929184565b60408051855165ffffffffffff908116825260209687015161ffff908116888401528651821693830193909352948601518216606082015283518516608082015292850151811660a0840152815190931660c0830152909201511660e08201526101000161036e565b6103616040518060400160405280600581526020017f73594c415900000000000000000000000000000000000000000000000000000081525081565b6104c561085b3660046147d2565b611509565b6103cd61086e366004614a71565b611661565b6103cd6108813660046148d5565b6116b1565b6106eb61177d565b61038a61089c3660046147d2565b611798565b6103cd6108af3660046147fc565b611823565b6104c56108c2366004614aa4565b611a8d565b6106eb611def565b6103cd611dfa565b6104c56108e53660046149ae565b611e10565b6103cd6108f83660046147fc565b60046020526000908152604090205481565b6103cd610918366004614ac6565b611fca565b610687604080516080810182526000808252602082018190529181018290526060810191909152506040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925273010000000000000000000000000000000000000090910461ffff16606082015290565b6106226109c03660046147fc565b612443565b6103cd6124ac565b6103cd6109db366004614b2c565b6124c3565b6103cd6109ee3660046147fc565b600a6020526000908152604090205481565b6104c5610a0e366004614b5f565b61254e565b61038a610a213660046147fc565b60026020526000908152604090205460ff1681565b61038a610a443660046147fc565b60016020526000908152604090205460ff1681565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f73594c41593a3a617070726f76653a2050726f6869626974656420416374696f60448201527f6e0000000000000000000000000000000000000000000000000000000000000060648201526000906084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c60209081526040808320805482518185028101850190935280835260609493830182828015610b7d57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610b445790505b50505050509050805167ffffffffffffffff811115610b9e57610b9e614b9f565b604051908082528060200260200182016040528015610c0e57816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610bbc5790505b50915060005b8151811015610d1e5773ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604081208351909190849084908110610c5957610c59614bce565b60209081029190910181015161ffff1682528181019290925260409081016000208151608081018352905465ffffffffffff8116825266ffffffffffffff66010000000000008204169382019390935267ffffffffffffffff6d0100000000000000000000000000840481169282019290925275010000000000000000000000000000000000000000009092041660608201528351849083908110610d0057610d00614bce565b60200260200101819052508080610d1690614c2c565b915050610c14565b5050919050565b600080610d3183612b94565b509050610d3d81612ddd565b9392505050565b600080610d4f612e1a565b509050610d5d600954612ef6565b610d6682612ddd565b600354610d739190614c64565b610d7d9190614c64565b91505090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f73594c41593a3a7472616e7366657246726f6d3a2050726f686962697465642060448201527f416374696f6e00000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b610e16612f08565b610e1e612fa7565b610e27816130d6565b50565b610e32612f08565b610e3a612fa7565b81610e44816130d6565b6000610e4f83613293565b9050610e5b84826132a5565b8373ffffffffffffffffffffffffffffffffffffffff167fe24fb5918dfdd34ee115de98f0d2960d0ce30d6169a74367fd256ff3b5048b7484604051610ea391815260200190565b60405180910390a250505050565b610eb9613629565b8060036000828254610ecb9190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054839290610f05908490614c64565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe906020015b60405180910390a25050565b6060806000610f6884612b94565b509050610f74816136c8565b156110bf5760608101516000610f89836136e2565b90508067ffffffffffffffff811115610fa457610fa4614b9f565b604051908082528060200260200182016040528015610fe957816020015b6040805180820190915260008082526020820152815260200190600190039081610fc25790505b5093508067ffffffffffffffff81111561100557611005614b9f565b60405190808252806020026020018201604052801561104a57816020015b60408051808201909152600080825260208201528152602001906001900390816110235790505b50945060005b84518110156110bb576110638784613755565b85828151811061107557611075614bce565b60200260200101819052508286828151811061109357611093614bce565b60200260200101819052506110a783613895565b9250806110b381614c2c565b915050611050565b5050505b50915091565b6110cd61390c565b611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f73594c41593a3a7365744772616475616c4d696e7465723a206772616475616c60448201527f206d696e7465722063616e6e6f7420626520746865207a65726f20616464726560648201527f7373000000000000000000000000000000000000000000000000000000000000608482015260a401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fd066a75103af5bd5a100de58375e7cf390671150ac63a9f845137e25042bf1589101610f4e565b6112fb6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b5073ffffffffffffffffffffffffffffffffffffffff16600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285015266ffffffffffffff6c01000000000000000000000000909104168185015283518085018552600183015461ffff808216835260ff6201000092839004811684880152606085019390935286518088019097526002850154808216885291909104909116938501939093526080810193909352600301541660a082015290565b6113d660d062093a80614c7c565b81565b6000806113e583612b94565b5073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205490915061141890612ef6565b61142182612ddd565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260409020546114519190614c64565b610d3d9190614c64565b611463612f08565b61146b612fa7565b565b600061147c62093a8083614c7c565b6000546114899190614c64565b92915050565b6040805160808101825260008082526020820181905291810182905260608101829052906114bb612e1a565b5092915050565b600c60205281600052604060002081815481106114de57600080fd5b9060005260206000209060109182820401919006600202915091509054906101000a900461ffff1681565b611511613629565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020548111156115c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a6275726e3a205573657220696e7374616e7420706f776572206260448201527f616c616e636520746f6f206c6f770000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906115fb908490614cb9565b9250508190555080600360008282546116149190614cb9565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df790602001610f4e565b600061166b612f08565b600061167684613293565b9050611697858265ffffffffffff1661168d611def565b61ffff16866139bd565b6116a88165ffffffffffff16612ef6565b95945050505050565b6000805482101561176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f73594c41593a3a6765745472616e636865496e6465783a2054696d65206d757360448201527f74206265206d6f7265206f7220657175616c20746f207468652066697273742060648201527f7472616e6368652074696d650000000000000000000000000000000000000000608482015260a401610ae0565b61177382613dd1565b61ffff1692915050565b60006001611789611def565b6117939190614cd0565b905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73594c41593a3a7472616e736665723a2050726f68696269746564204163746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b600061182d612f08565b6000611837611def565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c60205260408120805461ffff93909316935091905b81811015611a7857600083828154811061188657611886614bce565b6000918252602080832060108304015473ffffffffffffffffffffffffffffffffffffffff8b168452600b82526040808520600f9094166002026101000a90910461ffff16808552928252928390208351608081018552905465ffffffffffff811682526601000000000000810466ffffffffffffff16928201929092526d0100000000000000000000000000820467ffffffffffffffff908116948201949094527501000000000000000000000000000000000000000000909104909216606083015291506119568682613dfa565b15611a635761196a81898461ffff16613e24565b6119749088614c64565b965084611982600186614cb9565b8154811061199257611992614bce565b90600052602060002090601091828204019190066002029054906101000a900461ffff168584815481106119c8576119c8614bce565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555084805480611a0757611a07614cf3565b60008281526020902060107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191820401805461ffff6002600f8516026101000a0219169055905583611a5b81614d22565b945050611a71565b82611a6d81614c2c565b9350505b505061186a565b50611a8284612ef6565b93505050505b919050565b336000908152600b602090815260408083208584529091529020805465ffffffffffff16611b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204e6f206c6f636b757060448201527f20706f736974696f6e20666f756e6400000000000000000000000000000000006064820152608401610ae0565b80547501000000000000000000000000000000000000000000900467ffffffffffffffff168211611bf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020646560448201527f61646c696e652073686f756c6420626520696e207468652066757475726500006064820152608401610ae0565b60d0611bfc8484614cb9565b1115611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020706560448201527f72696f642065786365656473206120746f74616c206f662034207965617273006064820152608401610ae0565b805460009060d090611cbf907501000000000000000000000000000000000000000000900467ffffffffffffffff1685614cb9565b8354611cd3919065ffffffffffff16614c7c565b611cdd9190614d86565b90508060096000828254611cf19190614c64565b9091555050336000908152600a602052604081208054839290611d15908490614c64565b9091555050815481908390600690611d419084906601000000000000900466ffffffffffffff16614d9a565b82546101009290920a66ffffffffffffff8181021990931691909216919091021790555081547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000067ffffffffffffffff851602178255604080518581526020810183905290810184905233907ff105efae42c9c08d5eafed7135b77068bb81a1845393b4473ae79e86c94e97f190606001610ea3565b600061179342613dd1565b6000611793611e07611def565b61ffff1661146d565b611e1861390c565b611ea4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f73594c41593a3a7365744d696e7465723a206d696e7465722063616e6e6f742060448201527f626520746865207a65726f2061646472657373000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f583b0aa0e528532caf4b907c11d7a8158a122fe2a6fb80cd9b09776ebea8d92d9101610f4e565b6000611fd4612f08565b611fdc612fa7565b83611fe6816130d6565b600061200086611ffb36889003880188614dc5565b613f49565b805490915060009061201f906601000000000000900461ffff16613fd0565b825490915065ffffffffffff16806120b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f616c7265616479206c6f636b65640000000000000000000000000000000000006064820152608401610ae0565b60006120c3614050565b905061ffff811615806120e75750835461ffff808316660100000000000090920416115b612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f6d617475726564000000000000000000000000000000000000000000000000006064820152608401610ae0565b83546000906601000000000000900461ffff1661218e611def565b6121989190614cd0565b6121a69061ffff1684614e58565b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600760205260409020805465ffffffffffff928316935085926006916121f49185916601000000000000900416614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555082600560000160068282829054906101000a900465ffffffffffff1661223c9190614e86565b825465ffffffffffff9182166101009390930a92830291909202199091161790555073ffffffffffffffffffffffffffffffffffffffff8a1660009081526007602052604090208054829190600c906122b090849066ffffffffffffff6c0100000000000000000000000090910416614ea5565b92506101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550806005600001600c8282829054906101000a900466ffffffffffffff166122fb9190614ea5565b825466ffffffffffffff9182166101009390930a92830291909202199091161790555084547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016855583548390859060009061236090849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506123ac8a8465ffffffffffff168760000160069054906101000a900461ffff1661ffff168b6139bd565b84546040805165ffffffffffff86168152660100000000000090920461ffff16602083015266ffffffffffffff83169082015273ffffffffffffffffffffffffffffffffffffffff8b16907ff6028e08bd4265711d36773ee2b3ab6b15824a3938c53ce8022919564a1b8d049060600160405180910390a26124358365ffffffffffff16612ef6565b9a9950505050505050505050565b6124996040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b60006124a483612b94565b509392505050565b6000806124b7612e1a565b509050610d7d81612ddd565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a616c6c6f77616e63653a2050726f686962697465642041637460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b612556612f08565b61255e612fa7565b82612568816130d6565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600760209081526040808320815160c081018352815465ffffffffffff80821683526601000000000000808304821684880190815266ffffffffffffff6c010000000000000000000000009485900481168689015287518089018952600188015461ffff808216835260ff62010000928390048116848e01526060808b01949094528b51808d018d5260028c015480841682529390930416828d01526080808a0192909252600390990154891660a089015289519081018a526005548087168252948504909516998501999099529382049093169582019590955273010000000000000000000000000000000000000090940490921693830193909352518251929391926126929190614ec5565b835190915065ffffffffffff16156126b7576126b2828460000151614079565b600083525b602083015165ffffffffffff16156126df576126d78284602001516140b5565b600060208401525b604083015166ffffffffffffff1615612708576127008284604001516140ee565b600060408401525b612711836136c8565b156128915760608301515160808401515161ffff9182169116815b81811161288d5773ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452825291829020825160c081018452815465ffffffffffff8082166080840190815261ffff660100000000000093849004811660a0860152908452865180880188526001860154808416825284900482168188015284870152865180880188526002860154808416825284900482168188015284880152865180880190975260039094015490811686520490911691830191909152606081019190915261280390614139565b73ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000908116825560018201805482169055600282018054821690556003909101805490911690558061288581614c2c565b91505061272c565b5050505b6040518060400160405280600061ffff168152602001600060ff16815250836060018190525082600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160010160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060808201518160020160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060a08201518160030160006101000a81548161ffff021916908361ffff16021790555090505081600560008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160000160136101000a81548161ffff021916908361ffff1602179055509050508673ffffffffffffffffffffffffffffffffffffffff167f828d875bb1fd38ee261c0c069e9bc63df13bf8e7e59acc2385ea66b86c8351378787604051612b3d9291909182521515602082015260400190565b60405180910390a284612b8b576000612b558761416b565b90508065ffffffffffff168265ffffffffffff161115612b89576000612b7b8284614e86565b9050612b8789826132a5565b505b505b50505050505050565b612bea6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760209081526040808320815160c081018352815465ffffffffffff808216835266010000000000008204168286015266ffffffffffffff6c01000000000000000000000000909104168184015282518084018452600183015461ffff808216835260ff62010000928390048116848901526060850193909352855180870190965260028501548082168752919091049091169484019490945260808101929092526003015490911660a082015281612cbe61177d565b90508061ffff168260a0015161ffff1603612cde57509360009350915050565b612ce7826136c8565b15612dca576000612cf6614050565b905061ffff811615612d5c576000612d12878560600151613755565b90505b612d1e846136c8565b8015612d3657508161ffff16816020015161ffff1611155b15612d5a57612d45848261419a565b612d53878560600151613755565b9050612d15565b505b612d6a838361ffff1661425a565b15612dc85760008360a0015183612d819190614cd0565b61ffff16905080846020015165ffffffffffff16612d9f9190614ee6565b84604001818151612db09190614d9a565b66ffffffffffffff169052505061ffff821660a08401525b505b61ffff1660a08201529360019350915050565b6000612dfd612df8836040015166ffffffffffffff16612ef6565b614277565b8251612e109065ffffffffffff16612ef6565b6114899190614c64565b60408051608081018252600080825260208201819052918101829052606081018290529080612e4761177d565b6040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925261ffff7301000000000000000000000000000000000000009092048216606082015294501690505b80836060015161ffff161015612ef15760608301805190612ed882614f0c565b61ffff16905250612ee883614284565b60019150612eb8565b509091565b60006114896509184e72a00083614c7c565b3360009081526002602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f73594c41593a3a5f6f6e6c794772616475616c4d696e7465723a20496e73756660448201527f66696369656e742050726976696c6567657300000000000000000000000000006064820152608401610ae0565b600080612fb2612e1a565b9150915080156130d2578151600580546020808601516040808801516060808a015165ffffffffffff9889167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009097168717660100000000000099909516988902949094177fffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9093169283027fffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff161773010000000000000000000000000000000000000061ffff90951694850217909655815194855292840195909552938201527fb968421445b12044d4cf86ecc7f3f9589111c9efab4b7561360aea60f3e832eb9101610f4e565b5050565b6000806130e283612b94565b91509150801561328e5773ffffffffffffffffffffffffffffffffffffffff831660008181526007602090815260409182902085518154878401518886015165ffffffffffff9384167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009093168317660100000000000094909216938402919091177fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9092169182021784556060808a015180516001870180549289015161ffff9283167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000948516176201000060ff92831681029190911790925560808e0151805160028b018054928d0151918616929096169190911791169091021790915560a08b0151600390960180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169690911695861790558651928352948201929092529384015292917febc99566369f3a0bb7856de228673359eed87e744e506850f424863304607709910160405180910390a35b505050565b60006114896509184e72a00083614d86565b8065ffffffffffff166000036132b9575050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285019081526c0100000000000000000000000090910466ffffffffffffff168286015284518086018652600184015461ffff8082168352620100009182900460ff9081168489015260608601939093528751808901909852600286015480821689529190910490911694860194909452608082019490945260039091015490911660a082015281519091839161339b908390614ec5565b65ffffffffffff9081169091526005805485935090916006916133ca9185916601000000000000900416614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555060006133fc848360800151613755565b90506000613408611def565b90506000613415846136c8565b159050808061342f57508161ffff16836020015161ffff16105b1561347e5760006134438560800151613895565b9050811561345357606085018190525b60808501526040805180820190915265ffffffffffff8616815261ffff83166020820152925061349c565b84836000018181516134909190614ec5565b65ffffffffffff169052505b6134ae836020015161ffff1686614344565b6134bd86856080015185614395565b50505073ffffffffffffffffffffffffffffffffffffffff90921660009081526007602090815260409182902084518154838701519487015166ffffffffffffff166c01000000000000000000000000027fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff65ffffffffffff9687166601000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090931696909316959095171716929092178255606084015180516001840180549284015160ff908116620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000095861661ffff958616171790925560808801518051600288018054929097015190921690920291909316928216929092179190911790915560a09093015160039091018054919093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000919091161790915550565b3360009081526001602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f73594c41593a3a5f6f6e6c794d696e7465723a20496e73756666696369656e7460448201527f2050726976696c656765730000000000000000000000000000000000000000006064820152608401610ae0565b60608101515160009061ffff1615611a8857506001919050565b6060810151608082015160208201518251600093929160ff1690613707906004614f2d565b6137119190614f4e565b816020015160ff168260000151600461372a9190614f2d565b6137349190614f4e565b61373e9190614cd0565b613749906001614f4e565b61ffff16949350505050565b6040805180820182526000808252602080830182905273ffffffffffffffffffffffffffffffffffffffff8616825260088152838220855161ffff16835281529281209284015191929160ff1690036137d95760408051808201909152815465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660010361381c5760408051808201909152600182015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660020361385f5760408051808201909152600282015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b60408051808201909152600382015465ffffffffffff811682526601000000000000900461ffff16602082015291505092915050565b6040805180820190915260008082526020820152815161ffff166000036138bf5760018152919050565b6003826020015160ff1610156138f457815161ffff16815260208201516138e7906001614f6b565b60ff166020820152919050565b8151613901906001614f4e565b61ffff168152919050565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015613999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117939190614f90565b60006139c98383614cb9565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600b60209081526040808320878452909152902080549192509065ffffffffffff1615613aea5780547501000000000000000000000000000000000000000000900467ffffffffffffffff168314613ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f73594c41593a3a6d696e744c6f636b75703a204c6f636b757020706f7369746960448201527f6f6e20616c726561647920657869737473207769746820646966666572656e7460648201527f20646561646c696e650000000000000000000000000000000000000000000000608482015260a401610ae0565b613bed565b613af2611def565b61ffff1683118015613b05575060d08211155b613b91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a6d696e744c6f636b75703a20496e76616c696420646561646c60448201527f696e6500000000000000000000000000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600c6020908152604082208054600181018255908352912060108204018054600f9092166002026101000a61ffff81810219909316928716029190911790555b600060d0613bfb8488614c7c565b613c059190614d86565b90508060096000828254613c199190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff87166000908152600a602052604081208054839290613c53908490614c64565b9091555050815486908390600090613c7490849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550808260000160068282829054906101000a900466ffffffffffffff16613cbc9190614d9a565b825466ffffffffffffff9182166101009390930a928302919092021990911617905550815467ffffffffffffffff8581167501000000000000000000000000000000000000000000027fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff9188166d010000000000000000000000000002919091167fffffff00000000000000000000000000000000ffffffffffffffffffffffffff9092169190911717825560408051878152602081018390529081018690526060810185905273ffffffffffffffffffffffffffffffffffffffff8816907f8d57bc413d172db24c650affb289486236f8cf804335bc881bb5033401acd5da9060800160405180910390a250505050505050565b600062093a8060005483613de59190614cb9565b613def9190614d86565b611489906001614c64565b805160009065ffffffffffff1615801590610d3d5750506060015167ffffffffffffffff16111590565b6000836020015166ffffffffffffff1660096000828254613e459190614cb9565b909155505060208085015173ffffffffffffffffffffffffffffffffffffffff85166000908152600a90925260408220805466ffffffffffffff909216929091613e90908490614cb9565b9091555050835160405183815265ffffffffffff909116915073ffffffffffffffffffffffffffffffffffffffff8416907fdebd6c689e64ba7da4f3606a398615e9e8df6a117b5fb6fe720db13a3cd34f5a9060200160405180910390a273ffffffffffffffffffffffffffffffffffffffff9092166000908152600b602090815260408083209383529290522080547fffffff0000000000000000000000000000000000000000000000000000000000169055919050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600860209081526040808320845161ffff168452825282209083015160ff168203613f92579050806114bb565b826020015160ff16600103613fac578060010191506114bb565b826020015160ff16600203613fc6578060020191506114bb565b6003019392505050565b600080613fde600584614d86565b6000818152600660205260408120919250613ffa600586614fad565b90508060000361400c57509392505050565b8060010361401f57506001019392505050565b8060020361403257506002019392505050565b8060030361404557506003019392505050565b506004019392505050565b60008061405b611def565b61ffff16905060d081111561407557610d7d60d082614cb9565b5090565b815165ffffffffffff80831691161015614094575060009052565b80826000018181516140a69190614e86565b65ffffffffffff169052505050565b8065ffffffffffff16826020015165ffffffffffff1610156140dc57600060208301525050565b80826020018181516140a69190614e86565b8066ffffffffffffff16826040015166ffffffffffffff16101561411757600060408301525050565b80826040018181516141299190614ea5565b66ffffffffffffff169052505050565b80516141449061454f565b614151816020015161454f565b61415e816040015161454f565b610e27816060015161454f565b600061417682613293565b90508161418a8265ffffffffffff16612ef6565b1015611a885780610d3d81614fc1565b60006141ad826020015161ffff166146a1565b825160a0850151919250906000906141c59084614cd0565b61ffff16905080856020015165ffffffffffff166141e39190614ee6565b856040018181516141f49190614d9a565b66ffffffffffffff16905250600061420b836146ba565b905061421786826140ee565b82866000018181516142299190614ec5565b65ffffffffffff1690525061423e86846140b5565b614247866146cf565b50505061ffff1660a09092019190915250565b6000818360a0015161ffff16108015610d3d5750610d3d836136c8565b600061148960d083614d86565b806020015165ffffffffffff16816040018181516142a29190614d9a565b66ffffffffffffff16905250606081015160d061ffff90911610610e2757600060d0826060015161ffff166142d79190614cb9565b6142e2906001614c64565b905060006142ef82613fd0565b5465ffffffffffff169050801561328e57600061430b826146ba565b905061431784826140ee565b61432184836140b5565b81846000018181516143339190614ec5565b65ffffffffffff1690525050505050565b600061434f83613fd0565b80549091508290829060009061436e90849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600860209081526040808320855161ffff1684528252822090840151909160ff909116900361442a5781518154602084015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90921691909117178155614549565b826020015160ff16600103614490578151600182018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b826020015160ff166002036144f6578151600282018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b8151600382018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff909316929092179190911790555b50505050565b805165ffffffffffff1615610e27576000614571826020015161ffff16613fd0565b8251815491925065ffffffffffff9081169116106145cb578151815482906000906145a590849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050565b805482516145e19165ffffffffffff1690614e86565b65ffffffffffff166001036146195780547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016905550565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f73594c41593a3a5f72656d6f7665557365725472616e63686546726f6d476c6f60448201527f62616c3a205472616e63686520707265636973696f6e000000000000000000006064820152608401610ae0565b600060016146b060d084614c64565b6114899190614cb9565b600061148960d065ffffffffffff8416614c7c565b60808101515160608201515161ffff9081169116148015614705575080608001516020015160ff1681606001516020015160ff16145b15614726576040805180820190915260008082526020820152606082015250565b6147338160600151613895565b606082015250565b600060208083528351808285015260005b818110156147685785810183015185820160400152820161474c565b8181111561477a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a8857600080fd5b600080604083850312156147e557600080fd5b6147ee836147ae565b946020939093013593505050565b60006020828403121561480e57600080fd5b610d3d826147ae565b602080825282518282018190526000919060409081850190868401855b8281101561488c578151805165ffffffffffff1685528681015166ffffffffffffff16878601528581015167ffffffffffffffff90811687870152606091820151169085015260809093019290850190600101614834565b5091979650505050505050565b6000806000606084860312156148ae57600080fd5b6148b7846147ae565b92506148c5602085016147ae565b9150604084013590509250925092565b6000602082840312156148e757600080fd5b5035919050565b60408082528351828201819052600091906020906060850190828801855b8281101561494057614930848351805161ffff16825260209081015160ff16910152565b928501929084019060010161490c565b5050508481038286015285518082528683019183019060005b8181101561499257614982838551805165ffffffffffff16825260209081015161ffff16910152565b9284019291850191600101614959565b509098975050505050505050565b8015158114610e2757600080fd5b600080604083850312156149c157600080fd5b6149ca836147ae565b915060208301356149da816149a0565b809150509250929050565b60006101008201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff60408401511660408301526060830151614a3e6060840182805161ffff16825260209081015160ff16910152565b506080830151805161ffff1660a0840152602081015160ff1660c08401525061ffff60a08401511660e083015292915050565b600080600060608486031215614a8657600080fd5b614a8f846147ae565b95602085013595506040909401359392505050565b60008060408385031215614ab757600080fd5b50508035926020909101359150565b60008060008385036080811215614adc57600080fd5b614ae5856147ae565b935060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215614b1757600080fd5b50602084019150606084013590509250925092565b60008060408385031215614b3f57600080fd5b614b48836147ae565b9150614b56602084016147ae565b90509250929050565b600080600060608486031215614b7457600080fd5b614b7d846147ae565b9250602084013591506040840135614b94816149a0565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c5d57614c5d614bfd565b5060010190565b60008219821115614c7757614c77614bfd565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614cb457614cb4614bfd565b500290565b600082821015614ccb57614ccb614bfd565b500390565b600061ffff83811690831681811015614ceb57614ceb614bfd565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081614d3157614d31614bfd565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614d9557614d95614d57565b500490565b600066ffffffffffffff808316818516808303821115614dbc57614dbc614bfd565b01949350505050565b600060408284031215614dd757600080fd5b6040516040810181811067ffffffffffffffff82111715614e21577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052823561ffff81168114614e3657600080fd5b8152602083013560ff81168114614e4c57600080fd5b60208201529392505050565b600065ffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b02949350505050565b600065ffffffffffff83811690831681811015614ceb57614ceb614bfd565b600066ffffffffffffff83811690831681811015614ceb57614ceb614bfd565b600065ffffffffffff808316818516808303821115614dbc57614dbc614bfd565b600066ffffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818103614f2357614f23614bfd565b6001019392505050565b600061ffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818516808303821115614dbc57614dbc614bfd565b600060ff821660ff84168060ff03821115614f8857614f88614bfd565b019392505050565b600060208284031215614fa257600080fd5b8151610d3d816149a0565b600082614fbc57614fbc614d57565b500690565b600065ffffffffffff808316818103614f2357614f23614bfd56fea26469706673582212207cfe728256ec43cef057e55d308d31e516142f7aaa745a7a6bf6d227771cef8064736f6c634300080d0033000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", + "nonce": "0x108", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x5d9418", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x467e5bcc80a5dec9ef99fd3fb05a768f3862505690d648d8695944371a08f07e", + "transactionIndex": "0xa", + "blockHash": "0x775276fc315bcbdd3850a59178a1f4952eeb3bd6234660e8c565cb0c08c1eac0", + "blockNumber": "0x164e6c4", + "gasUsed": "0x4209da", + "effectiveGasPrice": "0x11617e70d", + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "to": null, + "contractAddress": "0x15eff5cdeb0b3b26f633ba523fdb2bb9d862d74e" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0x147c0d9", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xc0328652092a23da6081f4ba49c5750502b74108b19d01d2a7cb7d29df54f42d", + "transactionIndex": "0xf8", + "blockHash": "0x038aa03eb5d3127ec497c606a22c841ae779f227760266f4503ec194e0f3b9b4", + "blockNumber": "0x164e6c6", + "gasUsed": "0x441bbb", + "effectiveGasPrice": "0x11617e70d", + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "to": null, + "contractAddress": "0x3d79fbbf918327968e75dd0f5b1d25ac65c8dfa2" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1758197678017, + "chain": 1, + "commit": "823e888" +} \ No newline at end of file diff --git a/deployment/mainnet.json b/deployment/mainnet.json index 01fc87b..c7202e3 100644 --- a/deployment/mainnet.json +++ b/deployment/mainnet.json @@ -20,11 +20,11 @@ "proxy": "0x3E246beb1A0daF94FB376C44cAc2D1C8B979C0d0" }, "YelayStaking": { - "implementation": "0x7fc74Dc0b8755f17BaFCaF92DfeD7Fd2cC5Cabf5", + "implementation": "0x3D79fBbF918327968e75dD0F5b1D25ac65c8dfA2", "proxy": "0x8e933387AFc6F0F67588e5Dac33EBa97eF988C69" }, "sYLAY": { - "implementation": "0xEA8e63346e8a6ae1a15aa41c14004D030622B67B", + "implementation": "0x15Eff5cDEb0b3B26f633Ba523Fdb2bb9d862D74E", "proxy": "0xC0F7B477e05B29097546dAae2E3dF2decBeB405d" }, "sYLAYRewards": { diff --git a/script/TransferUserRemovalUpgrade.s.sol b/script/TransferUserRemovalUpgrade.s.sol new file mode 100644 index 0000000..2aea810 --- /dev/null +++ b/script/TransferUserRemovalUpgrade.s.sol @@ -0,0 +1,35 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.13; + +import {Script} from "forge-std/Script.sol"; + +import {JsonReadWriter, Environment} from "./helpers.sol"; + +import {YelayStaking} from "src/YelayStaking.sol"; +import {sYLAY} from "src/sYLAY.sol"; +import {IYelayOwner} from "src/interfaces/IYelayOwner.sol"; + +/** + * source .env && FOUNDRY_PROFILE=mainnet forge script script/TransferUserRemovalUpgrade.s.sol:TransferUserRemovalUpgrade --slow --broadcast --legacy --etherscan-api-key $ETHERSCAN_API_KEY --verify + */ +contract TransferUserRemovalUpgrade is Script { + function run() external { + Environment.setRpc(vm); + + JsonReadWriter json = new JsonReadWriter(vm, Environment.getContractsPath(vm)); + + vm.startBroadcast(Environment.getPrivateKey(vm)); + YelayStaking yelayStaking = new YelayStaking( + json.getAddress(".YLAY.proxy"), + json.getAddress(".sYLAY.proxy"), + json.getAddress(".sYLAYRewards.proxy"), + json.getAddress(".YelayRewardsDistributor.proxy"), + json.getAddress(".YelayOwner") + ); + sYLAY sylay = new sYLAY(IYelayOwner(json.getAddress(".YelayOwner"))); + vm.stopBroadcast(); + + json.addProxy("YelayStaking", address(sylay), json.getAddress(".YelayStaking.proxy")); + json.addProxy("sYLAY", address(yelayStaking), json.getAddress(".sYLAY.proxy")); + } +} diff --git a/src/YelayStaking.sol b/src/YelayStaking.sol index d73a119..3078d69 100644 --- a/src/YelayStaking.sol +++ b/src/YelayStaking.sol @@ -1,8 +1,6 @@ // SPDX-License-Identifier: MIT pragma solidity 0.8.13; -import {ECDSA} from "openzeppelin-contracts/utils/cryptography/ECDSA.sol"; -import {EIP712} from "openzeppelin-contracts/utils/cryptography/draft-EIP712.sol"; import "openzeppelin-contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol"; import "openzeppelin-contracts/token/ERC20/utils/SafeERC20.sol"; @@ -25,7 +23,7 @@ import "./interfaces/IRewardDistributor.sol"; * At stake, gradual sYLAY (Yelay Voting Token) is minted and accumulated every week. * At unstake all sYLAY is burned. The maturing process of sYLAY restarts. */ -contract YelayStaking is ReentrancyGuardUpgradeable, YelayOwnable, IYelayStaking, EIP712 { +contract YelayStaking is ReentrancyGuardUpgradeable, YelayOwnable, IYelayStaking { using SafeERC20 for IERC20; /* ========== STRUCTS ========== */ @@ -91,8 +89,6 @@ contract YelayStaking is ReentrancyGuardUpgradeable, YelayOwnable, IYelayStaking /// @notice Account YLAY locked balance. subset of balances mapping(address => uint256) public locked; - bytes32 private constant _TRANSFER_USER_TYPEHASH = keccak256("TransferUser(address from, uint256 deadline)"); - /* ========== CONSTRUCTOR ========== */ /** @@ -110,7 +106,7 @@ contract YelayStaking is ReentrancyGuardUpgradeable, YelayOwnable, IYelayStaking address _sYlayRewards, address _rewardDistributor, address _yelayOwner - ) YelayOwnable(IYelayOwner(_yelayOwner)) EIP712("YelayStaking", "1.0.1") { + ) YelayOwnable(IYelayOwner(_yelayOwner)) { stakingToken = IERC20(_stakingToken); sYlay = IsYLAY(_sYlay); sYlayRewards = IsYLAYRewards(_sYlayRewards); @@ -158,63 +154,8 @@ contract YelayStaking is ReentrancyGuardUpgradeable, YelayOwnable, IYelayStaking return rewardTokens.length; } - /** - * @dev Returns the domain separator for the current chain. - */ - function domainSeparatorV4() external view returns (bytes32) { - return _domainSeparatorV4(); - } - - /** - * @dev Returns the struct hash for hashTypedDataV4 - */ - function structHash(address from, uint256 deadline) public pure returns (bytes32) { - return keccak256(abi.encode(_TRANSFER_USER_TYPEHASH, from, deadline)); - } - /* ========== MUTATIVE FUNCTIONS ========== */ - /** - * @notice Transfers the staking balance and rewards of one user to another. - * @dev This function is non-reentrant and updates rewards before transferring. - * @param to The address of the recipient to whom the staking data is transferred. - */ - function transferUser(address to, uint256 deadline, bytes memory signature) - external - nonReentrant - updateRewards(msg.sender) - { - require(deadline > block.timestamp, "YelayStaking::transferUser: deadline has passed"); - - bytes32 hash_ = _hashTypedDataV4(structHash(msg.sender, deadline)); - address signer = ECDSA.recover(hash_, signature); - - require(signer == to, "YelayStaking::transferUser: invalid signature"); - - balances[to] = balances[msg.sender]; - stakedBy[to] = stakedBy[msg.sender]; - locked[to] = locked[msg.sender]; - canStakeFor[to] = false; - - delete balances[msg.sender]; - delete stakedBy[msg.sender]; - delete locked[msg.sender]; - delete canStakeFor[msg.sender]; - - uint256 _rewardTokensCount = rewardTokens.length; - for (uint256 i; i < _rewardTokensCount; i++) { - RewardConfiguration storage config = rewardConfiguration[rewardTokens[i]]; - - config.rewards[to] = config.rewards[msg.sender]; - config.userRewardPerTokenPaid[to] = config.userRewardPerTokenPaid[msg.sender]; - - delete config.rewards[msg.sender]; - delete config.userRewardPerTokenPaid[msg.sender]; - } - - sYlay.transferUser(msg.sender, to); - } - /** * @notice Stake YLAY tokens and start earning sYLAY gradually. * @param amount The amount of YLAY to stake. diff --git a/src/interfaces/IsYLAY.sol b/src/interfaces/IsYLAY.sol index 46776c6..8c49243 100644 --- a/src/interfaces/IsYLAY.sol +++ b/src/interfaces/IsYLAY.sol @@ -17,8 +17,6 @@ interface IsYLAY is IsYLAYBase { function burnLockups(address to) external returns (uint256 amount); - function transferUser(address from, address to) external; - event TrancheMigration(address indexed user, uint256 amount, uint256 index, uint256 rawUnmaturedVotingPower); event LockupMinted(address indexed to, uint256 amount, uint256 power, uint256 startTranche, uint256 endTranche); diff --git a/src/sYLAY.sol b/src/sYLAY.sol index 6946217..d8a2ec3 100644 --- a/src/sYLAY.sol +++ b/src/sYLAY.sol @@ -731,54 +731,6 @@ contract sYLAY is YelayOwnable, IsYLAY, IERC20MetadataUpgradeable { } } - /* ========== GRADUAL POWER: TRANSFER FUNCTIONS ========== */ - - /** - * @notice Transfers user data (staking and graduals) from one address to another. - * @param from The address of the user from whom data is being transferred. - * @param to The address of the recipient user. - */ - function transferUser(address from, address to) external onlyGradualMinter { - require(_userExists(from), "sYLAY::migrate: User does not exist"); - require(!_userExists(to), "sYLAY::migrate: User already exists"); - - UserGradual memory _userGradual = _userGraduals[from]; - - // Migrate user tranches - if (_hasTranches(_userGradual)) { - uint256 fromIndex = _userGradual.oldestTranchePosition.arrayIndex; - uint256 toIndex = _userGradual.latestTranchePosition.arrayIndex; - - for (uint256 i = fromIndex; i <= toIndex; i++) { - userTranches[to][i] = userTranches[from][i]; - delete userTranches[from][i]; - } - } - - // migrate user lockups - uint16[] memory userLockupIndexesFrom = userLockupIndexes[from]; - for (uint256 i = 0; i < userLockupIndexesFrom.length; i++) { - uint16 index = userLockupIndexesFrom[i]; - userToTrancheIndexToLockup[to][index] = userToTrancheIndexToLockup[from][index]; - delete userToTrancheIndexToLockup[from][index]; - } - userLockupIndexes[to] = userLockupIndexesFrom; - delete userLockupIndexes[from]; - - // Migrate user gradual - _userGraduals[to] = _userGraduals[from]; - delete _userGraduals[from]; - - // migrate user powers - userInstantPower[to] = userInstantPower[from]; - delete userInstantPower[from]; - - userLockupPower[to] = userLockupPower[from]; - delete userLockupPower[from]; - - emit UserTransferred(from, to); - } - /* ---------- GRADUAL POWER: BURN FUNCTIONS ---------- */ /** diff --git a/test/SYLAYNew.t.sol b/test/SYLAYNew.t.sol deleted file mode 100644 index 413f69d..0000000 --- a/test/SYLAYNew.t.sol +++ /dev/null @@ -1,63 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity 0.8.13; - -import "openzeppelin-contracts/proxy/ERC1967/ERC1967Proxy.sol"; - -import "forge-std/Test.sol"; -import "spool/external/spool-core/SpoolOwner.sol"; - -import {MockToken} from "test/mocks/MockToken.sol"; -import "test/shared/Utilities.sol"; -import "src/YLAY.sol"; -import {VoSPOOL} from "spool/VoSPOOL.sol"; -import {SpoolStaking} from "spool/SpoolStaking.sol"; -import {sYLAY, IsYLAYBase} from "src/sYLAY.sol"; -import {sYLAYRewards} from "src/sYLAYRewards.sol"; -import {YelayOwner} from "src/YelayOwner.sol"; -import {YelayRewardDistributor} from "src/YelayRewardDistributor.sol"; -import {YelayStaking} from "src/migration/YelayStaking.sol"; -import "src/YelayMigrator.sol"; -import "src/libraries/ConversionLib.sol"; - -contract SYLAYNewTest is Test, Utilities { - // new - YelayOwner yelayOwner; - sYLAY sYlay; - - address deployer; - address owner = address(0x01); - address gradualMinter = address(0x02); - address user1 = address(0x03); - address user2 = address(0x04); - - function setUp() public { - vm.startPrank(owner); - yelayOwner = new YelayOwner(); - sYlay = new sYLAY(yelayOwner); - sYlay.setGradualMinter(gradualMinter, true); - vm.stopPrank(); - } - - function test_transferUserNormal() public { - // ARRANGE - uint256 mintAmount = 1000 ether; // Mint amount for user1 - - uint256 currentTranche = sYlay.getCurrentTrancheIndex(); - - // Mint gradual for user1 - vm.prank(gradualMinter); - sYlay.mintLockup(user1, mintAmount, currentTranche + 5); - - // Pass half the maturity time - uint256 weeksToPass = 208 / 2; - vm.warp(block.timestamp + (1 weeks * weeksToPass)); - - vm.prank(gradualMinter); - sYlay.transferUser(user1, user2); - - vm.prank(user1); - vm.expectRevert("sYLAY::continueLockup: No lockup position found"); - sYlay.continueLockup(currentTranche, currentTranche + 100); - } -} diff --git a/test/YelayStakingLockup.t.sol b/test/YelayStakingLockup.t.sol index df06552..5646b9e 100644 --- a/test/YelayStakingLockup.t.sol +++ b/test/YelayStakingLockup.t.sol @@ -647,91 +647,6 @@ contract YelayStakingLockupTest is Test, Utilities { return amount / TRIM_SIZE; } - /// @notice Test transferUser functionality with reward rate setup - function test_transferUser() public { - // ARRANGE - uint256 stakeAmount = 1000 ether; // Amount to stake - - // User1 stakes some amount - vm.prank(user1); - yelayStaking.stake(stakeAmount); - - // User1 locks some amount - uint256 lockEnd = sYlay.getCurrentTrancheIndex() + 100; - vm.prank(user1); - yelayStaking.lock(stakeAmount, lockEnd); - - // Simulate passing of 5 weeks to accumulate rewards - vm.warp(block.timestamp + 5 weeks); - - // get user1 maturingAmount before - IsYLAYBase.UserGradual memory user1Gradual = sYlay.getUserGradual(user1); - IsYLAYBase.UserGradual memory user2Gradual; - uint256 maturingAmountBefore = user1Gradual.maturingAmount; - - // Get current balances, locked, canStakeFor, and stakedBy for user1 before transfer - uint256 user1BalanceBefore = yelayStaking.balances(user1); - uint256 user1LockedBefore = yelayStaking.locked(user1); - bool user1CanStakeFor = yelayStaking.canStakeFor(user1); - address user1StakedBy = yelayStaking.stakedBy(user1); - - // get sYLAY data before - uint256 user1sYLAYBefore = sYlay.balanceOf(user1); - uint256 user1LockupPowerBefore = sYlay.userLockupPower(user1); - uint16 userLockupIndexBefore = sYlay.userLockupIndexes(user1, 0); - sYLAY.UserLockup memory lockupBefore; - (lockupBefore.amount, lockupBefore.power, lockupBefore.start, lockupBefore.deadline) = - sYlay.userToTrancheIndexToLockup(user1, userLockupIndexBefore); - - // Accumulated rewards for user1 - uint256 earnedRewardToken1Before = yelayStaking.earned(rewardToken1, user1); - - // ACT - Transfer user1 data to user2 - vm.startPrank(user1); - { - uint256 deadline = block.timestamp; - bytes32 hash_ = - ECDSA.toTypedDataHash(yelayStaking.domainSeparatorV4(), yelayStaking.structHash(user2, deadline)); - (uint8 v, bytes32 r, bytes32 s) = vm.sign(user1Pk, hash_); - bytes memory signature = abi.encodePacked(r, s, v); - vm.expectRevert("YelayStaking::transferUser: deadline has passed"); - yelayStaking.transferUser(user2, deadline, signature); - } - { - uint256 deadline = block.timestamp + 100; - bytes32 hash_ = - ECDSA.toTypedDataHash(yelayStaking.domainSeparatorV4(), yelayStaking.structHash(user1, deadline)); - (uint8 v, bytes32 r, bytes32 s) = vm.sign(user1Pk, hash_); - bytes memory signature = abi.encodePacked(r, s, v); - vm.expectRevert("YelayStaking::transferUser: invalid signature"); - yelayStaking.transferUser(user2, deadline, signature); - } - { - uint256 deadline = block.timestamp + 100; - bytes32 hash_ = - ECDSA.toTypedDataHash(yelayStaking.domainSeparatorV4(), yelayStaking.structHash(user1, deadline)); - (uint8 v, bytes32 r, bytes32 s) = vm.sign(user2Pk, hash_); - bytes memory signature = abi.encodePacked(r, s, v); - yelayStaking.transferUser(user2, deadline, signature); - } - vm.stopPrank(); - - // ASSERT - Verify user2 has all the data from user1 - assertEq(yelayStaking.balances(user2), user1BalanceBefore); - assertEq(yelayStaking.locked(user2), user1LockedBefore); - assertEq(yelayStaking.canStakeFor(user2), user1CanStakeFor); - assertEq(yelayStaking.stakedBy(user2), user1StakedBy); - - // Verify sYlay transfer was also done - _verifySYlayTransferUser(user1sYLAYBefore, user1LockupPowerBefore, userLockupIndexBefore, lockupBefore); - - // Check that user2 has the rewards transferred - assertEq(yelayStaking.earned(rewardToken1, user2), earnedRewardToken1Before); - - // Verify user1 has no data - _verifyNoData(maturingAmountBefore, user1Gradual, user2Gradual); - } - function test_shouldMigrateToExistingTranche() public { // ARRANGE uint256 stakeAmount = 1000 ether; // Amount to stake From 6ac9b2638db9782a832345abe196c3246d66c2a1 Mon Sep 17 00:00:00 2001 From: ksamarin90 Date: Fri, 19 Sep 2025 12:47:52 +0400 Subject: [PATCH 2/3] fix implementations --- deployment/mainnet.json | 4 ++-- script/TransferUserRemovalUpgrade.s.sol | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/deployment/mainnet.json b/deployment/mainnet.json index c7202e3..18cd9e4 100644 --- a/deployment/mainnet.json +++ b/deployment/mainnet.json @@ -20,11 +20,11 @@ "proxy": "0x3E246beb1A0daF94FB376C44cAc2D1C8B979C0d0" }, "YelayStaking": { - "implementation": "0x3D79fBbF918327968e75dD0F5b1D25ac65c8dfA2", + "implementation": "0x15Eff5cDEb0b3B26f633Ba523Fdb2bb9d862D74E", "proxy": "0x8e933387AFc6F0F67588e5Dac33EBa97eF988C69" }, "sYLAY": { - "implementation": "0x15Eff5cDEb0b3B26f633Ba523Fdb2bb9d862D74E", + "implementation": "0x3D79fBbF918327968e75dD0F5b1D25ac65c8dfA2", "proxy": "0xC0F7B477e05B29097546dAae2E3dF2decBeB405d" }, "sYLAYRewards": { diff --git a/script/TransferUserRemovalUpgrade.s.sol b/script/TransferUserRemovalUpgrade.s.sol index 2aea810..382bd48 100644 --- a/script/TransferUserRemovalUpgrade.s.sol +++ b/script/TransferUserRemovalUpgrade.s.sol @@ -29,7 +29,7 @@ contract TransferUserRemovalUpgrade is Script { sYLAY sylay = new sYLAY(IYelayOwner(json.getAddress(".YelayOwner"))); vm.stopBroadcast(); - json.addProxy("YelayStaking", address(sylay), json.getAddress(".YelayStaking.proxy")); - json.addProxy("sYLAY", address(yelayStaking), json.getAddress(".sYLAY.proxy")); + json.addProxy("YelayStaking", address(yelayStaking), json.getAddress(".YelayStaking.proxy")); + json.addProxy("sYLAY", address(sylay), json.getAddress(".sYLAY.proxy")); } } From a157ff85670c0e91ce11f5909373ced754e98bf6 Mon Sep 17 00:00:00 2001 From: ksamarin90 Date: Fri, 19 Sep 2025 12:54:24 +0400 Subject: [PATCH 3/3] cleanup and redeploy --- .../1/run-1758272005103.json | 88 +++++++++++++++++++ .../1/run-latest.json | 52 +++++------ deployment/mainnet.json | 4 +- src/interfaces/IsYLAY.sol | 2 - src/sYLAY.sol | 11 --- 5 files changed, 116 insertions(+), 41 deletions(-) create mode 100644 broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-1758272005103.json diff --git a/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-1758272005103.json b/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-1758272005103.json new file mode 100644 index 0000000..9899563 --- /dev/null +++ b/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-1758272005103.json @@ -0,0 +1,88 @@ +{ + "transactions": [ + { + "hash": "0xbba4313eb3f82acea7e2272562da16cf3d9925bad0a66fef8cd6b6b9a66efdfc", + "transactionType": "CREATE", + "contractName": "YelayStaking", + "contractAddress": "0x15ff5cbc5f1f37279f60509f8e5532c79ccf5318", + "function": null, + "arguments": [ + "0xAEe5913FFd19dBcA4Fd1eF6F3925ed0414407d37", + "0xC0F7B477e05B29097546dAae2E3dF2decBeB405d", + "0x705f023b2Ce85B0c7039B43C8e217F61a3A3bb13", + "0x3E246beb1A0daF94FB376C44cAc2D1C8B979C0d0", + "0xAB865D95A574511a6c893C38A4D892275ca70570" + ], + "transaction": { + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "gas": "0x55d99b", + "value": "0x0", + "input": "0x6101206040523480156200001257600080fd5b506040516200504b3803806200504b83398101604081905262000035916200010b565b806001600160a01b038116620000c35760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b0390811660805294851660a0525091831660c052821660e05216610100526200017b565b80516001600160a01b03811681146200010657600080fd5b919050565b600080600080600060a086880312156200012457600080fd5b6200012f86620000ee565b94506200013f60208701620000ee565b93506200014f60408701620000ee565b92506200015f60608701620000ee565b91506200016f60808701620000ee565b90509295509295909350565b60805160a05160c05160e05161010051614dd5620002766000396000818161055a015281816124b101528181613fbc01526142a10152600081816104ea0152818161254701528181613ba801528181613d100152613ed10152600081816105b401528181610a63015281816110b00152818161119e01528181611242015281816125fa01528181612c8301528181612e53015281816132ad0152613dc301526000818161044e015281816112d2015281816116750152818161219f0152818161229a0152818161248201528181612f1701528181613a6001528181613aa101528181613f8d015261403101526000612bb40152614dd56000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c80638129fc1c11610160578063b51609b4116100d8578063ec199a861161008c578063f122977711610071578063f122977714610617578063f4de10ac14610657578063fb6138ab1461066a57600080fd5b8063ec199a86146105f1578063f051c8c31461060457600080fd5b8063ccd83835116100bd578063ccd83835146105af578063d1e6044a146105d6578063d6fbddd7146105e957600080fd5b8063b51609b41461057c578063cbf9fe5f1461058f57600080fd5b80639ec8f9d51161012f578063a4d5e67c11610114578063a4d5e67c1461052f578063a694fc3a14610542578063acc2166a1461055557600080fd5b80639ec8f9d5146104e55780639fa451021461050c57600080fd5b80638129fc1c1461049e578063817b1cd2146104a657806383e25f8a146104af5780639a4c5719146104c257600080fd5b8063467e27f41161020e578063638634ee116101c257806373c2ad9c116101a757806373c2ad9c14610470578063780d9d2d146104835780637bb7bed11461048b57600080fd5b8063638634ee1461042157806372f702f31461044957600080fd5b8063540bb5dd116101f3578063540bb5dd146103aa57806356891412146103bd5780635f56a31a146103c657600080fd5b8063467e27f4146103645780634c86c3161461039757600080fd5b8063211dc32d116102655780632e0b00451161024a5780632e0b00451461032b5780632e17de781461033e5780632ee409081461035157600080fd5b8063211dc32d146102f857806327e235e31461030b57600080fd5b8063037ff3931461029757806310098ad5146102ac5780631338736f146102d2578063189ab267146102e5575b600080fd5b6102aa6102a536600461474f565b61075f565b005b6102bf6102ba366004614788565b610883565b6040519081526020015b60405180910390f35b6102aa6102e03660046147a5565b610923565b6102aa6102f33660046147c7565b6109b2565b6102bf610306366004614803565b610b44565b6102bf610319366004614788565b60376020526000908152604090205481565b6102aa610339366004614845565b610c50565b6102aa61034c36600461487a565b610e59565b6102aa61035f366004614893565b611338565b610387610372366004614788565b603a6020526000908152604090205460ff1681565b60405190151581526020016102c9565b6102aa6103a5366004614788565b611735565b6102aa6103b83660046148bf565b6118b0565b6102bf603b5481565b6103fc6103d4366004614788565b60396020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b61043461042f366004614788565b611a42565b60405163ffffffff90911681526020016102c9565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61047e3660046148bf565b611a81565b6034546102bf565b6103fc61049936600461487a565b611db2565b6102aa611de9565b6102bf60365481565b6102aa6104bd3660046148fd565b611f0d565b6103876104d0366004614788565b60386020526000908152604090205460ff1681565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b61038761051a366004614788565b60356020526000908152604090205460ff1681565b6102aa61053d366004614788565b61204c565b6102aa61055036600461487a565b612100565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61058a366004614932565b612204565b6102bf61059d366004614788565b603c6020526000908152604090205481565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa6105e4366004614974565b612399565b6102bf612516565b6102aa6105ff366004614974565b61266e565b6102aa61061236600461474f565b6127b1565b61062a610625366004614788565b6128c8565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b6102aa6106653660046149c0565b612a0e565b6106f0610678366004614788565b6033602052600090815260409020805460019091015463ffffffff808316926401000000008082048316936801000000000000000090920477ffffffffffffffffffffffffffffffffffffffffffffffff1692821691047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1685565b6040805163ffffffff9687168152948616602086015277ffffffffffffffffffffffffffffffffffffffffffffffff909316928401929092529290921660608201527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909116608082015260a0016102c9565b610767612b83565b6107f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152603a602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f875e6b685dc796d88ea0d32a721c8114d31e77f43a6bb0879c32e7321bb59df191015b60405180910390a25050565b60003315610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f59656c61795374616b696e673a3a617661696c61626c653a204f6e6c7920737460448201527f617469632d63616c6c61626c650000000000000000000000000000000000000060648201526084016107ef565b61091c82612c39565b9392505050565b60026001540361098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361099e81612d5b565b6109a9338484612d6d565b50506001805550565b600260015403610a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001556040517fd131ef5700000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d131ef5790610a9c90339087908790600401614ab5565b6020604051808303816000875af1158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190614b17565b603b805482019055336000818152603c6020908152604091829020805485019055815184815290810186905292935090917f1f04ae837474cd4ca082595601e32f6cd5de50b09ee3b24f3b3ccded6869b872910160405180910390a250506001805550565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260336020908152604080832093851683526037909152812054909190808303610bb5575073ffffffffffffffffffffffffffffffffffffffff83166000908152600390910160205260409020549050610c4a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526002830160209081526040808320546003860190925290912054670de0b6b3a764000082610bfe896128c8565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610c269190614b5f565b610c309085614b76565b610c3a9190614bb3565b610c449190614bee565b93505050505b92915050565b610c58612b83565b610ce4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b816000610cf18282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604090206001015463ffffffff80851691161115610d8f5773ffffffffffffffffffffffffffffffffffffffff84166000908152603360205260409020600181015481547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1663ffffffff90911664010000000002179055610dea565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1664010000000063ffffffff8616021790555b73ffffffffffffffffffffffffffffffffffffffff841660008181526033602090815260409182902054915164010000000090920463ffffffff1682527f21b2dd8950fc3a17e42d75bdfba3bf13f5a451f2d4b1dab7ab7f8d44f8a0692691015b60405180910390a250505050565b600260015403610ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610f7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b33610f8781612d5b565b600080610f9333612c39565b91509150600084118015610fa75750808411155b611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a756e7374616b653a20556e617661696c616260448201527f6c6520616d6f756e74207265717565737465640000000000000000000000000060648201526084016107ef565b603b80548390039055336000908152603c6020908152604080832080548690039055603680548890039055603790915281208054869003908190559003611126576040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260006024820152600160448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b15801561110957600080fd5b505af115801561111d573d6000803e3d6000fd5b505050506112b8565b60008483101561113f5761113a8386614b5f565b611142565b60005b905060008584101561115557600061115f565b61115f8685614b5f565b6040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260248101849052600060448201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b1580156111f757600080fd5b505af115801561120b573d6000803e3d6000fd5b50506040517f3f9a6020000000000000000000000000000000000000000000000000000000008152336004820152602481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169250633f9a60209150604401600060405180830381600087803b15801561129d57600080fd5b505af11580156112b1573d6000803e3d6000fd5b5050505050505b6112f973ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633866130df565b60405184815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f759060200160405180910390a25050600180555050565b6002600154036113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015533600090815260386020526040902054829060ff16806113cc57506113cc612b83565b61147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2043616e6e6f74207374616b6520666f72206f74686572206164647265737360648201527f6573000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260376020526040902054156116475773ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541661155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a204164647265737320616c7265616479207374616b6564000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260396020526040902054163314806115955750611595612b83565b611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2041646472657373207374616b656420627920616e6f74686572206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b8261165181612d5b565b61165b84846131b3565b61169d73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b73ffffffffffffffffffffffffffffffffffffffff84166000818152603960205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590519091907ff27841bf2ce46c8c33a68e103ff4238ad9192a4156d62c4b449f834e914d1291906117239087815260200190565b60405180910390a35050600180555050565b3360009081526038602052604090205460ff16801561177a575073ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541633145b806117885750611788612b83565b61183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f59656c61795374616b696e673a3a616c6c6f77556e7374616b65466f723a204360448201527f616e6e6f7420616c6c6f7720756e7374616b696e6720666f722061646472657360648201527f7300000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff811660008181526039602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055513392917f168f8317dbd30ba6270b791af2ed458991c1b3750d39d4b0019978debde8144591a350565b6118b8612b83565b611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8581169190911782556001820154919291169003611a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f59656c61795374616b696e673a3a6e6f74696679526577617264416d6f756e7460448201527f3a20546f6b656e206e6f7420796574206164646564000000000000000000000060648201526084016107ef565b611a3c848361336d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040812054610c4a904290640100000000900463ffffffff16613726565b611a89612b83565b611b15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020908152604080832060359092529091205460ff1615611bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f59656c61795374616b696e673a3a616464546f6b656e3a2043616e6e6f74206160448201527f646420626c61636b6c697374656420746f6b656e00000000000000000000000060648201526084016107ef565b8263ffffffff16600003611c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a616464546f6b656e3a20526577617264206460448201527f75726174696f6e2063616e6e6f7420626520300000000000000000000000000060648201526084016107ef565b600181015463ffffffff1615611d04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f59656c61795374616b696e673a3a616464546f6b656e3a20546f6b656e20616c60448201527f726561647920616464656400000000000000000000000000000000000000000060648201526084016107ef565b603480546001810182556000919091527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c10180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff84161781558115611a3c57611a3c848361336d565b60348181548110611dc257600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600054610100900460ff16611e045760005460ff1615611e08565b303b155b611e94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff16158015611ed357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b611edb61373b565b8015611f0a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b600260015403611f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b6002600155336000908152603a602052604090205460ff1680611f9f5750611f9f612b83565b61202d57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f59656c61795374616b696e673a3a63616e4c6f636b466f72416464726573733a60448201527f2043616e6e6f74206c6f636b20666f72206f746865722061646472657373657360648201526084016107ef565b8261203781612d5b565b612042848484612d6d565b5050600180555050565b612054612b83565b6120e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b806120ea816137dc565b8160006120f78282612f8d565b611a3c8461389e565b60026001540361216c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361217b81612d5b565b61218533836131b3565b6121c773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308561330f565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a2505060018055565b61220c612b83565b612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f59656c61795374616b696e673a3a7265636f76657245524332303a2043616e6e60448201527f6f7420776974686472617720746865207374616b696e6720746f6b656e00000060648201526084016107ef565b61239473ffffffffffffffffffffffffffffffffffffffff841682846130df565b505050565b600260015403612405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015560006124163383613a5c565b9050801561250e5761242733613c6d565b816124355761243533613ccb565b61243f33826131b3565b6040517fcd8515cf00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b1580156124f557600080fd5b505af1158015612509573d6000803e3d6000fd5b505050505b505060018055565b6040517f5fd619650000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635fd61965906024016020604051808303816000875af11580156125a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c99190614b17565b6040517f2e638b5f0000000000000000000000000000000000000000000000000000000081523360048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e638b5f90602401600060405180830381600087803b15801561265357600080fd5b505af1158015612667573d6000803e3d6000fd5b5050505090565b6002600154036126da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b61279b33613e22565b80156127aa576127aa33613e80565b5060018055565b6127b9612b83565b612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff821660008181526038602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f772c7bbbb43be2b0e7bb7f68909195e3d9d6454e330539807adc92c90a5141439101610877565b73ffffffffffffffffffffffffffffffffffffffff811660009081526033602052604081206036548203612926576001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b600181015460009063ffffffff1661293d85611a42565b6129479190614c06565b63ffffffff1690508060000361298857506001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b6036548254612a0691906129c29068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1684614b76565b6129cc9190614bb3565b6001840154612a01919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b61408c565b949350505050565b600260015403612a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b60005b8251811015612b7357612b61838281518110612b5357612b53614c2b565b60200260200101513361413e565b80612b6b81614c5a565b915050612b35565b50801561250e5761250e33613e80565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015612c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c349190614c92565b905090565b6040517fab95e67e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015260009182917f0000000000000000000000000000000000000000000000000000000000000000169063ab95e67e906024016020604051808303816000875af1158015612ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf09190614b17565b73ffffffffffffffffffffffffffffffffffffffff84166000908152603c6020526040902054909250612d24908390614b5f565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260376020526040902054612d549190614b5f565b9050915091565b612d6481613c6d565b611f0a81613ccb565b60008211612dfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f59656c61795374616b696e673a3a5f6c6f636b3a2043616e6e6f74206c6f636b60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107ef565b6040517f9e52c75200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390526000917f000000000000000000000000000000000000000000000000000000000000000090911690639e52c752906064016020604051808303816000875af1158015612e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec29190614b17565b603b80548201905573ffffffffffffffffffffffffffffffffffffffff8086166000908152603c60209081526040808320805486019055603680548901905560379091529020805486019055909150612f3f907f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff8616917fd4665e3049283582ba6f9eba07a5b3e12dab49e02da99e8927a47af5d134bea59101610e4b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260409020612fbb836128c8565b8160010160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555061301683611a42565b6001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905573ffffffffffffffffffffffffffffffffffffffff821615612394576130738383610b44565b73ffffffffffffffffffffffffffffffffffffffff929092166000908152600382016020908152604080832094909455600183015460029093019052919091206401000000009091047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526123949084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261435a565b60008111613242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f59656c61795374616b696e673a3a5f7374616b653a2043616e6e6f742073746160448201527f6b6520300000000000000000000000000000000000000000000000000000000060648201526084016107ef565b603680548201905573ffffffffffffffffffffffffffffffffffffffff82811660008181526037602052604090819020805485019055517f3f9a60200000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f000000000000000000000000000000000000000000000000000000000000000090911690633f9a602090604401600060405180830381600087803b1580156132f357600080fd5b505af1158015613307573d6000803e3d6000fd5b505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052611a3c9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613131565b81600061337a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902077ffffffffffffffffffffffffffffffffffffffffffffffff6133ca670de0b6b3a764000086614b76565b60018301546133ff919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b111561348d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a5f6e6f74696679526577617264416d6f756e60448201527f743a2052657761726420616d6f756e7420746f6f20626967000000000000000060648201526084016107ef565b80546000906134a29063ffffffff1642614caf565b8254909150640100000000900463ffffffff1642106135855781546134e89063ffffffff166134d9670de0b6b3a764000088614b76565b6134e39190614bb3565b614466565b825477ffffffffffffffffffffffffffffffffffffffffffffffff91909116680100000000000000000267ffffffffffffffff8216811784556040805188815263ffffffff9283169290931691909117602083015273ffffffffffffffffffffffffffffffffffffffff8816917f6a6f77044107a33658235d41bedbbaf2fe9ccdceb313143c947a5e76e1ec8474910160405180910390a26136b5565b81546000906135a3904290640100000000900463ffffffff16614b5f565b83549091506000906135db9068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1683614b76565b845490915060009061360a9063ffffffff1683613600670de0b6b3a76400008c614b76565b6134d99190614bee565b855477ffffffffffffffffffffffffffffffffffffffffffffffff8216680100000000000000000267ffffffffffffffff821681178855604080518c81526020810187905263ffffffff92831693831693909317908301528616606082015290915073ffffffffffffffffffffffffffffffffffffffff8a16907f12b903bd655ecbcd9e3c889d933351dee4800a3a080c2e8538dbe79be0143fc79060800160405180910390a25050505b60018201805463ffffffff4281167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009092169190911790915582549116640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff90911617905550505050565b6000818311613735578261091c565b50919050565b600054610100900460ff166137d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b6137da614510565b565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040902054640100000000900463ffffffff164211611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f59656c61795374616b696e673a3a5f6f6e6c7946696e69736865643a2052657760448201527f617264206e6f742066696e69736865640000000000000000000000000000000060648201526084016107ef565b60345460005b81811015612394578273ffffffffffffffffffffffffffffffffffffffff16603482815481106138d6576138d6614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1603613a4a57603461390a600184614b5f565b8154811061391a5761391a614c2b565b6000918252602090912001546034805473ffffffffffffffffffffffffffffffffffffffff909216918390811061395357613953614c2b565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060348054806139ac576139ac614cd7565b60008281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560405173ffffffffffffffffffffffffffffffffffffffff8516917f755c47ac85b75fe2251607db5a480aac818b88bb535814bf1e3c4784ae4f6baa91a2505050565b80613a5481614c5a565b9150506138a4565b60007f000000000000000000000000000000000000000000000000000000000000000083613a8a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600090815260336020908152604080832093891683526003840190915290205493508315613b515773ffffffffffffffffffffffffffffffffffffffff86166000908152600382016020526040808220919091555133907f6675fb32d259af2b7287aeeead9dc867fe8ca2cf653265dfadd302512ab59f0690613b489087815260200190565b60405180910390a25b8415613c6457613b6086613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c179190614b17565b90508015613c6257613c298186614bee565b60405181815290955033907fa73ffcc7352d89c062bc4e024ef35bf0227d67ac65ad1c8b334260a85a9e1e359060200160405180910390a25b505b50505092915050565b60345460005b8181101561239457613cb960348281548110613c9157613c91614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684612f8d565b80613cc381614c5a565b915050613c73565b6040517f5fd6196500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635fd61965906024016020604051808303816000875af1158015613d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7d9190614b17565b506040517f2e638b5f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690632e638b5f90602401600060405180830381600087803b158015613e0757600080fd5b505af1158015613e1b573d6000803e3d6000fd5b5050505050565b60345460005b8181101561239457613e6e60348281548110613e4657613e46614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461413e565b80613e7881614c5a565b915050613e28565b613e8981613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f409190614b17565b90508015614088576040517fcd8515cf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b15801561400057600080fd5b505af1158015614014573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116825260208201869052861693507f7d72689587d6992abf89f27bfc51b5ca89f108900547aa61628552e1e8e90bd0925001610877565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f323420626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b5090565b818161414a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604081208054909163ffffffff9091169003614209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f59656c61795374616b696e673a3a5f6765745265776172643a2042616420726560448201527f7761726420746f6b656e0000000000000000000000000000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260038201602052604090205480156133075773ffffffffffffffffffffffffffffffffffffffff858116600081815260038501602052604080822091909155517fcd8515cf00000000000000000000000000000000000000000000000000000000815260048101919091528782166024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063cd8515cf90606401600060405180830381600087803b1580156142e757600080fd5b505af11580156142fb573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8a8116825260208201869052891693507f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e92500160405180910390a2505050505050565b60006143bc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166145ad9092919063ffffffff16565b80519091501561239457808060200190518101906143da9190614c92565b612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107ef565b600077ffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f323820626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff166145a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b60018055565b6060612a0684846000858573ffffffffffffffffffffffffffffffffffffffff85163b614636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107ef565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161465f9190614d32565b60006040518083038185875af1925050503d806000811461469c576040519150601f19603f3d011682016040523d82523d6000602084013e6146a1565b606091505b50915091506146b18282866146bc565b979650505050505050565b606083156146cb57508161091c565b8251156146db5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef9190614d4e565b73ffffffffffffffffffffffffffffffffffffffff81168114611f0a57600080fd5b8015158114611f0a57600080fd5b803561474a81614731565b919050565b6000806040838503121561476257600080fd5b823561476d8161470f565b9150602083013561477d81614731565b809150509250929050565b60006020828403121561479a57600080fd5b813561091c8161470f565b600080604083850312156147b857600080fd5b50508035926020909101359150565b60008082840360608112156147db57600080fd5b60408112156147e957600080fd5b50919360408501359350915050565b803561474a8161470f565b6000806040838503121561481657600080fd5b82356148218161470f565b9150602083013561477d8161470f565b803563ffffffff8116811461474a57600080fd5b6000806040838503121561485857600080fd5b82356148638161470f565b915061487160208401614831565b90509250929050565b60006020828403121561488c57600080fd5b5035919050565b600080604083850312156148a657600080fd5b82356148b18161470f565b946020939093013593505050565b6000806000606084860312156148d457600080fd5b83356148df8161470f565b92506148ed60208501614831565b9150604084013590509250925092565b60008060006060848603121561491257600080fd5b833561491d8161470f565b95602085013595506040909401359392505050565b60008060006060848603121561494757600080fd5b83356149528161470f565b92506020840135915060408401356149698161470f565b809150509250925092565b60006020828403121561498657600080fd5b813561091c81614731565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156149d357600080fd5b823567ffffffffffffffff808211156149eb57600080fd5b818501915085601f8301126149ff57600080fd5b8135602082821115614a1357614a13614991565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108682111715614a5657614a56614991565b604052928352818301935084810182019289841115614a7457600080fd5b948201945b83861015614a9957614a8a866147f8565b85529482019493820193614a79565b9650614aa8905087820161473f565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff8416815260808101833561ffff8116808214614ae557600080fd5b8060208501525050602084013560ff8116808214614b0257600080fd5b60408401525060609091019190915292915050565b600060208284031215614b2957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614b7157614b71614b30565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bae57614bae614b30565b500290565b600082614be9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115614c0157614c01614b30565b500190565b600063ffffffff83811690831681811015614c2357614c23614b30565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c8b57614c8b614b30565b5060010190565b600060208284031215614ca457600080fd5b815161091c81614731565b600063ffffffff808316818516808303821115614cce57614cce614b30565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60005b83811015614d21578181015183820152602001614d09565b83811115611a3c5750506000910152565b60008251614d44818460208701614d06565b9190910192915050565b6020815260008251806020840152614d6d816040850160208701614d06565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122000256408b2705f2b6c829dc0e4dfc8d342f06539f31397b6965f27e0a32b756c64736f6c634300080d0033000000000000000000000000aee5913ffd19dbca4fd1ef6f3925ed0414407d37000000000000000000000000c0f7b477e05b29097546daae2e3df2decbeb405d000000000000000000000000705f023b2ce85b0c7039b43c8e217f61a3a3bb130000000000000000000000003e246beb1a0daf94fb376c44cac2d1c8b979c0d0000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", + "nonce": "0x109", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + }, + { + "hash": "0x509ea6c6b866ef6c1ea4fb018e2ba882fa5d6ff54cd040c1bd428d7b71c938ad", + "transactionType": "CREATE", + "contractName": "sYLAY", + "contractAddress": "0x276a0f45051dc2530e8b7354df3fd31673c6e8bd", + "function": null, + "arguments": [ + "0xAB865D95A574511a6c893C38A4D892275ca70570" + ], + "transaction": { + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "gas": "0x588a63", + "value": "0x0", + "input": "0x60a06040523480156200001157600080fd5b5060405162005135380380620051358339810160408190526200003491620000d5565b806001600160a01b038116620000c25760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b03166080525062000107565b600060208284031215620000e857600080fd5b81516001600160a01b03811681146200010057600080fd5b9392505050565b60805161501262000123600039600061393d01526150126000f3fe608060405234801561001057600080fd5b50600436106103205760003560e01c806388278207116101a7578063cbfd3a43116100ee578063d7febbca11610097578063e4c4949511610071578063e4c4949514610a00578063edcd508a14610a13578063f46eccc414610a3657600080fd5b8063d7febbca146109c5578063dd62ed3e146109cd578063e42084df146109e057600080fd5b8063d131ef57116100c8578063d131ef571461090a578063d4f54eae1461091d578063d6a182b3146109b257600080fd5b8063cbfd3a43146108cf578063cf456ae7146108d7578063d09f88b5146108ea57600080fd5b8063a04d804311610150578063ab95e67e1161012a578063ab95e67e146108a1578063c8800d1c146108b4578063c8a168ef146108c757600080fd5b8063a04d804314610873578063a5ef7fab14610886578063a9059cbb1461088e57600080fd5b806395d89b411161018157806395d89b41146108115780639dc29fac1461084d5780639e52c7521461086057600080fd5b8063882782071461067f5780638afd9bc4146106d85780638c2a8034146106fe57600080fd5b806344b066f51161026b5780635eb5164d116102145780637a1957ca116101ee5780637a1957ca1461065c5780637a81cf261461066457806385cf95ac1461066c57600080fd5b80635eb5164d1461063857806370a082311461064057806378362cd61461065357600080fd5b80635b1534cb116102455780635b1534cb1461054e5780635b4653441461060f5780635df0f4b61461062f57600080fd5b806344b066f514610510578063468682c01461051a5780635638f3dd1461053b57600080fd5b80632d43b867116102cd5780633f9a6020116102a75780633f9a6020146104e157806340c10f19146104f457806343481a181461050757600080fd5b80632d43b867146103f65780632e638b5f146104b2578063313ce567146104c757600080fd5b806316349cff116102fe57806316349cff146103ba57806318160ddd146103db57806323b872dd146103e357600080fd5b806306fdde0314610325578063095ea7b31461037757806312fb31751461039a575b600080fd5b6103616040518060400160405280600c81526020017f5374616b65642059656c6179000000000000000000000000000000000000000081525081565b60405161036e919061473b565b60405180910390f35b61038a6103853660046147d2565b610a59565b604051901515815260200161036e565b6103ad6103a83660046147fc565b610ae9565b60405161036e9190614817565b6103cd6103c83660046147fc565b610d25565b60405190815260200161036e565b6103cd610d44565b61038a6103f1366004614899565b610d83565b6104756104043660046148d5565b60066020908152600091825260409182902082518083018452815465ffffffffffff9081168252845180850186526001840154821681528551808601875260028501548316815286518087018852600386015484168152875196870190975260049094015490911684529093909285565b60408051955165ffffffffffff9081168752945185166020870152925184169285019290925251821660608401525116608082015260a00161036e565b6104c56104c03660046147fc565b610e0e565b005b6104cf601281565b60405160ff909116815260200161036e565b6104c56104ef3660046147d2565b610e2a565b6104c56105023660046147d2565b610eb1565b6103cd60035481565b6103cd62093a8081565b61052d6105283660046147fc565b610f5a565b60405161036e9291906148ee565b6104c56105493660046149ae565b6110c5565b6105ce61055c3660046147d2565b600b60209081526000928352604080842090915290825290205465ffffffffffff81169066ffffffffffffff66010000000000008204169067ffffffffffffffff6d01000000000000000000000000008204811691750100000000000000000000000000000000000000000090041684565b6040805165ffffffffffff909516855266ffffffffffffff909316602085015267ffffffffffffffff9182169284019290925216606082015260800161036e565b61062261061d3660046147fc565b6112a5565b60405161036e91906149e5565b6103cd60005481565b6103cd6113c8565b6103cd61064e3660046147fc565b6113d9565b6103cd60095481565b6104c561145b565b6103cd60d081565b6103cd61067a3660046148d5565b61146d565b61068761148f565b60405161036e9190600060808201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff604084015116604083015261ffff606084015116606083015292915050565b6106eb6106e63660046147d2565b6114c2565b60405161ffff909116815260200161036e565b6107a861070c3660046147d2565b600860209081526000928352604080842082529183529181902081518083018352815465ffffffffffff808216835261ffff660100000000000092839004811684880152855180870187526001860154808416825284900482168189015286518088018852600287015480851682528590048316818a015287518089019098526003909601549283168752929091041694840194909452929184565b60408051855165ffffffffffff908116825260209687015161ffff908116888401528651821693830193909352948601518216606082015283518516608082015292850151811660a0840152815190931660c0830152909201511660e08201526101000161036e565b6103616040518060400160405280600581526020017f73594c415900000000000000000000000000000000000000000000000000000081525081565b6104c561085b3660046147d2565b611509565b6103cd61086e366004614a71565b611661565b6103cd6108813660046148d5565b6116b1565b6106eb61177d565b61038a61089c3660046147d2565b611798565b6103cd6108af3660046147fc565b611823565b6104c56108c2366004614aa4565b611a8d565b6106eb611def565b6103cd611dfa565b6104c56108e53660046149ae565b611e10565b6103cd6108f83660046147fc565b60046020526000908152604090205481565b6103cd610918366004614ac6565b611fca565b610687604080516080810182526000808252602082018190529181018290526060810191909152506040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925273010000000000000000000000000000000000000090910461ffff16606082015290565b6106226109c03660046147fc565b612443565b6103cd6124ac565b6103cd6109db366004614b2c565b6124c3565b6103cd6109ee3660046147fc565b600a6020526000908152604090205481565b6104c5610a0e366004614b5f565b61254e565b61038a610a213660046147fc565b60026020526000908152604090205460ff1681565b61038a610a443660046147fc565b60016020526000908152604090205460ff1681565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f73594c41593a3a617070726f76653a2050726f6869626974656420416374696f60448201527f6e0000000000000000000000000000000000000000000000000000000000000060648201526000906084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c60209081526040808320805482518185028101850190935280835260609493830182828015610b7d57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610b445790505b50505050509050805167ffffffffffffffff811115610b9e57610b9e614b9f565b604051908082528060200260200182016040528015610c0e57816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610bbc5790505b50915060005b8151811015610d1e5773ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604081208351909190849084908110610c5957610c59614bce565b60209081029190910181015161ffff1682528181019290925260409081016000208151608081018352905465ffffffffffff8116825266ffffffffffffff66010000000000008204169382019390935267ffffffffffffffff6d0100000000000000000000000000840481169282019290925275010000000000000000000000000000000000000000009092041660608201528351849083908110610d0057610d00614bce565b60200260200101819052508080610d1690614c2c565b915050610c14565b5050919050565b600080610d3183612b94565b509050610d3d81612ddd565b9392505050565b600080610d4f612e1a565b509050610d5d600954612ef6565b610d6682612ddd565b600354610d739190614c64565b610d7d9190614c64565b91505090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f73594c41593a3a7472616e7366657246726f6d3a2050726f686962697465642060448201527f416374696f6e00000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b610e16612f08565b610e1e612fa7565b610e27816130d6565b50565b610e32612f08565b610e3a612fa7565b81610e44816130d6565b6000610e4f83613293565b9050610e5b84826132a5565b8373ffffffffffffffffffffffffffffffffffffffff167fe24fb5918dfdd34ee115de98f0d2960d0ce30d6169a74367fd256ff3b5048b7484604051610ea391815260200190565b60405180910390a250505050565b610eb9613629565b8060036000828254610ecb9190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054839290610f05908490614c64565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe906020015b60405180910390a25050565b6060806000610f6884612b94565b509050610f74816136c8565b156110bf5760608101516000610f89836136e2565b90508067ffffffffffffffff811115610fa457610fa4614b9f565b604051908082528060200260200182016040528015610fe957816020015b6040805180820190915260008082526020820152815260200190600190039081610fc25790505b5093508067ffffffffffffffff81111561100557611005614b9f565b60405190808252806020026020018201604052801561104a57816020015b60408051808201909152600080825260208201528152602001906001900390816110235790505b50945060005b84518110156110bb576110638784613755565b85828151811061107557611075614bce565b60200260200101819052508286828151811061109357611093614bce565b60200260200101819052506110a783613895565b9250806110b381614c2c565b915050611050565b5050505b50915091565b6110cd61390c565b611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f73594c41593a3a7365744772616475616c4d696e7465723a206772616475616c60448201527f206d696e7465722063616e6e6f7420626520746865207a65726f20616464726560648201527f7373000000000000000000000000000000000000000000000000000000000000608482015260a401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fd066a75103af5bd5a100de58375e7cf390671150ac63a9f845137e25042bf1589101610f4e565b6112fb6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b5073ffffffffffffffffffffffffffffffffffffffff16600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285015266ffffffffffffff6c01000000000000000000000000909104168185015283518085018552600183015461ffff808216835260ff6201000092839004811684880152606085019390935286518088019097526002850154808216885291909104909116938501939093526080810193909352600301541660a082015290565b6113d660d062093a80614c7c565b81565b6000806113e583612b94565b5073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205490915061141890612ef6565b61142182612ddd565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260409020546114519190614c64565b610d3d9190614c64565b611463612f08565b61146b612fa7565b565b600061147c62093a8083614c7c565b6000546114899190614c64565b92915050565b6040805160808101825260008082526020820181905291810182905260608101829052906114bb612e1a565b5092915050565b600c60205281600052604060002081815481106114de57600080fd5b9060005260206000209060109182820401919006600202915091509054906101000a900461ffff1681565b611511613629565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020548111156115c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a6275726e3a205573657220696e7374616e7420706f776572206260448201527f616c616e636520746f6f206c6f770000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906115fb908490614cb9565b9250508190555080600360008282546116149190614cb9565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df790602001610f4e565b600061166b612f08565b600061167684613293565b9050611697858265ffffffffffff1661168d611def565b61ffff16866139bd565b6116a88165ffffffffffff16612ef6565b95945050505050565b6000805482101561176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f73594c41593a3a6765745472616e636865496e6465783a2054696d65206d757360448201527f74206265206d6f7265206f7220657175616c20746f207468652066697273742060648201527f7472616e6368652074696d650000000000000000000000000000000000000000608482015260a401610ae0565b61177382613dd1565b61ffff1692915050565b60006001611789611def565b6117939190614cd0565b905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73594c41593a3a7472616e736665723a2050726f68696269746564204163746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b600061182d612f08565b6000611837611def565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c60205260408120805461ffff93909316935091905b81811015611a7857600083828154811061188657611886614bce565b6000918252602080832060108304015473ffffffffffffffffffffffffffffffffffffffff8b168452600b82526040808520600f9094166002026101000a90910461ffff16808552928252928390208351608081018552905465ffffffffffff811682526601000000000000810466ffffffffffffff16928201929092526d0100000000000000000000000000820467ffffffffffffffff908116948201949094527501000000000000000000000000000000000000000000909104909216606083015291506119568682613dfa565b15611a635761196a81898461ffff16613e24565b6119749088614c64565b965084611982600186614cb9565b8154811061199257611992614bce565b90600052602060002090601091828204019190066002029054906101000a900461ffff168584815481106119c8576119c8614bce565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555084805480611a0757611a07614cf3565b60008281526020902060107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191820401805461ffff6002600f8516026101000a0219169055905583611a5b81614d22565b945050611a71565b82611a6d81614c2c565b9350505b505061186a565b50611a8284612ef6565b93505050505b919050565b336000908152600b602090815260408083208584529091529020805465ffffffffffff16611b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204e6f206c6f636b757060448201527f20706f736974696f6e20666f756e6400000000000000000000000000000000006064820152608401610ae0565b80547501000000000000000000000000000000000000000000900467ffffffffffffffff168211611bf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020646560448201527f61646c696e652073686f756c6420626520696e207468652066757475726500006064820152608401610ae0565b60d0611bfc8484614cb9565b1115611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020706560448201527f72696f642065786365656473206120746f74616c206f662034207965617273006064820152608401610ae0565b805460009060d090611cbf907501000000000000000000000000000000000000000000900467ffffffffffffffff1685614cb9565b8354611cd3919065ffffffffffff16614c7c565b611cdd9190614d86565b90508060096000828254611cf19190614c64565b9091555050336000908152600a602052604081208054839290611d15908490614c64565b9091555050815481908390600690611d419084906601000000000000900466ffffffffffffff16614d9a565b82546101009290920a66ffffffffffffff8181021990931691909216919091021790555081547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000067ffffffffffffffff851602178255604080518581526020810183905290810184905233907ff105efae42c9c08d5eafed7135b77068bb81a1845393b4473ae79e86c94e97f190606001610ea3565b600061179342613dd1565b6000611793611e07611def565b61ffff1661146d565b611e1861390c565b611ea4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f73594c41593a3a7365744d696e7465723a206d696e7465722063616e6e6f742060448201527f626520746865207a65726f2061646472657373000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f583b0aa0e528532caf4b907c11d7a8158a122fe2a6fb80cd9b09776ebea8d92d9101610f4e565b6000611fd4612f08565b611fdc612fa7565b83611fe6816130d6565b600061200086611ffb36889003880188614dc5565b613f49565b805490915060009061201f906601000000000000900461ffff16613fd0565b825490915065ffffffffffff16806120b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f616c7265616479206c6f636b65640000000000000000000000000000000000006064820152608401610ae0565b60006120c3614050565b905061ffff811615806120e75750835461ffff808316660100000000000090920416115b612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f6d617475726564000000000000000000000000000000000000000000000000006064820152608401610ae0565b83546000906601000000000000900461ffff1661218e611def565b6121989190614cd0565b6121a69061ffff1684614e58565b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600760205260409020805465ffffffffffff928316935085926006916121f49185916601000000000000900416614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555082600560000160068282829054906101000a900465ffffffffffff1661223c9190614e86565b825465ffffffffffff9182166101009390930a92830291909202199091161790555073ffffffffffffffffffffffffffffffffffffffff8a1660009081526007602052604090208054829190600c906122b090849066ffffffffffffff6c0100000000000000000000000090910416614ea5565b92506101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550806005600001600c8282829054906101000a900466ffffffffffffff166122fb9190614ea5565b825466ffffffffffffff9182166101009390930a92830291909202199091161790555084547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016855583548390859060009061236090849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506123ac8a8465ffffffffffff168760000160069054906101000a900461ffff1661ffff168b6139bd565b84546040805165ffffffffffff86168152660100000000000090920461ffff16602083015266ffffffffffffff83169082015273ffffffffffffffffffffffffffffffffffffffff8b16907ff6028e08bd4265711d36773ee2b3ab6b15824a3938c53ce8022919564a1b8d049060600160405180910390a26124358365ffffffffffff16612ef6565b9a9950505050505050505050565b6124996040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b60006124a483612b94565b509392505050565b6000806124b7612e1a565b509050610d7d81612ddd565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a616c6c6f77616e63653a2050726f686962697465642041637460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b612556612f08565b61255e612fa7565b82612568816130d6565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600760209081526040808320815160c081018352815465ffffffffffff80821683526601000000000000808304821684880190815266ffffffffffffff6c010000000000000000000000009485900481168689015287518089018952600188015461ffff808216835260ff62010000928390048116848e01526060808b01949094528b51808d018d5260028c015480841682529390930416828d01526080808a0192909252600390990154891660a089015289519081018a526005548087168252948504909516998501999099529382049093169582019590955273010000000000000000000000000000000000000090940490921693830193909352518251929391926126929190614ec5565b835190915065ffffffffffff16156126b7576126b2828460000151614079565b600083525b602083015165ffffffffffff16156126df576126d78284602001516140b5565b600060208401525b604083015166ffffffffffffff1615612708576127008284604001516140ee565b600060408401525b612711836136c8565b156128915760608301515160808401515161ffff9182169116815b81811161288d5773ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452825291829020825160c081018452815465ffffffffffff8082166080840190815261ffff660100000000000093849004811660a0860152908452865180880188526001860154808416825284900482168188015284870152865180880188526002860154808416825284900482168188015284880152865180880190975260039094015490811686520490911691830191909152606081019190915261280390614139565b73ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000908116825560018201805482169055600282018054821690556003909101805490911690558061288581614c2c565b91505061272c565b5050505b6040518060400160405280600061ffff168152602001600060ff16815250836060018190525082600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160010160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060808201518160020160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060a08201518160030160006101000a81548161ffff021916908361ffff16021790555090505081600560008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160000160136101000a81548161ffff021916908361ffff1602179055509050508673ffffffffffffffffffffffffffffffffffffffff167f828d875bb1fd38ee261c0c069e9bc63df13bf8e7e59acc2385ea66b86c8351378787604051612b3d9291909182521515602082015260400190565b60405180910390a284612b8b576000612b558761416b565b90508065ffffffffffff168265ffffffffffff161115612b89576000612b7b8284614e86565b9050612b8789826132a5565b505b505b50505050505050565b612bea6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760209081526040808320815160c081018352815465ffffffffffff808216835266010000000000008204168286015266ffffffffffffff6c01000000000000000000000000909104168184015282518084018452600183015461ffff808216835260ff62010000928390048116848901526060850193909352855180870190965260028501548082168752919091049091169484019490945260808101929092526003015490911660a082015281612cbe61177d565b90508061ffff168260a0015161ffff1603612cde57509360009350915050565b612ce7826136c8565b15612dca576000612cf6614050565b905061ffff811615612d5c576000612d12878560600151613755565b90505b612d1e846136c8565b8015612d3657508161ffff16816020015161ffff1611155b15612d5a57612d45848261419a565b612d53878560600151613755565b9050612d15565b505b612d6a838361ffff1661425a565b15612dc85760008360a0015183612d819190614cd0565b61ffff16905080846020015165ffffffffffff16612d9f9190614ee6565b84604001818151612db09190614d9a565b66ffffffffffffff169052505061ffff821660a08401525b505b61ffff1660a08201529360019350915050565b6000612dfd612df8836040015166ffffffffffffff16612ef6565b614277565b8251612e109065ffffffffffff16612ef6565b6114899190614c64565b60408051608081018252600080825260208201819052918101829052606081018290529080612e4761177d565b6040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925261ffff7301000000000000000000000000000000000000009092048216606082015294501690505b80836060015161ffff161015612ef15760608301805190612ed882614f0c565b61ffff16905250612ee883614284565b60019150612eb8565b509091565b60006114896509184e72a00083614c7c565b3360009081526002602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f73594c41593a3a5f6f6e6c794772616475616c4d696e7465723a20496e73756660448201527f66696369656e742050726976696c6567657300000000000000000000000000006064820152608401610ae0565b600080612fb2612e1a565b9150915080156130d2578151600580546020808601516040808801516060808a015165ffffffffffff9889167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009097168717660100000000000099909516988902949094177fffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9093169283027fffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff161773010000000000000000000000000000000000000061ffff90951694850217909655815194855292840195909552938201527fb968421445b12044d4cf86ecc7f3f9589111c9efab4b7561360aea60f3e832eb9101610f4e565b5050565b6000806130e283612b94565b91509150801561328e5773ffffffffffffffffffffffffffffffffffffffff831660008181526007602090815260409182902085518154878401518886015165ffffffffffff9384167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009093168317660100000000000094909216938402919091177fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9092169182021784556060808a015180516001870180549289015161ffff9283167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000948516176201000060ff92831681029190911790925560808e0151805160028b018054928d0151918616929096169190911791169091021790915560a08b0151600390960180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169690911695861790558651928352948201929092529384015292917febc99566369f3a0bb7856de228673359eed87e744e506850f424863304607709910160405180910390a35b505050565b60006114896509184e72a00083614d86565b8065ffffffffffff166000036132b9575050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285019081526c0100000000000000000000000090910466ffffffffffffff168286015284518086018652600184015461ffff8082168352620100009182900460ff9081168489015260608601939093528751808901909852600286015480821689529190910490911694860194909452608082019490945260039091015490911660a082015281519091839161339b908390614ec5565b65ffffffffffff9081169091526005805485935090916006916133ca9185916601000000000000900416614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555060006133fc848360800151613755565b90506000613408611def565b90506000613415846136c8565b159050808061342f57508161ffff16836020015161ffff16105b1561347e5760006134438560800151613895565b9050811561345357606085018190525b60808501526040805180820190915265ffffffffffff8616815261ffff83166020820152925061349c565b84836000018181516134909190614ec5565b65ffffffffffff169052505b6134ae836020015161ffff1686614344565b6134bd86856080015185614395565b50505073ffffffffffffffffffffffffffffffffffffffff90921660009081526007602090815260409182902084518154838701519487015166ffffffffffffff166c01000000000000000000000000027fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff65ffffffffffff9687166601000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090931696909316959095171716929092178255606084015180516001840180549284015160ff908116620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000095861661ffff958616171790925560808801518051600288018054929097015190921690920291909316928216929092179190911790915560a09093015160039091018054919093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000919091161790915550565b3360009081526001602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f73594c41593a3a5f6f6e6c794d696e7465723a20496e73756666696369656e7460448201527f2050726976696c656765730000000000000000000000000000000000000000006064820152608401610ae0565b60608101515160009061ffff1615611a8857506001919050565b6060810151608082015160208201518251600093929160ff1690613707906004614f2d565b6137119190614f4e565b816020015160ff168260000151600461372a9190614f2d565b6137349190614f4e565b61373e9190614cd0565b613749906001614f4e565b61ffff16949350505050565b6040805180820182526000808252602080830182905273ffffffffffffffffffffffffffffffffffffffff8616825260088152838220855161ffff16835281529281209284015191929160ff1690036137d95760408051808201909152815465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660010361381c5760408051808201909152600182015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660020361385f5760408051808201909152600282015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b60408051808201909152600382015465ffffffffffff811682526601000000000000900461ffff16602082015291505092915050565b6040805180820190915260008082526020820152815161ffff166000036138bf5760018152919050565b6003826020015160ff1610156138f457815161ffff16815260208201516138e7906001614f6b565b60ff166020820152919050565b8151613901906001614f4e565b61ffff168152919050565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015613999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117939190614f90565b60006139c98383614cb9565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600b60209081526040808320878452909152902080549192509065ffffffffffff1615613aea5780547501000000000000000000000000000000000000000000900467ffffffffffffffff168314613ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f73594c41593a3a6d696e744c6f636b75703a204c6f636b757020706f7369746960448201527f6f6e20616c726561647920657869737473207769746820646966666572656e7460648201527f20646561646c696e650000000000000000000000000000000000000000000000608482015260a401610ae0565b613bed565b613af2611def565b61ffff1683118015613b05575060d08211155b613b91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a6d696e744c6f636b75703a20496e76616c696420646561646c60448201527f696e6500000000000000000000000000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600c6020908152604082208054600181018255908352912060108204018054600f9092166002026101000a61ffff81810219909316928716029190911790555b600060d0613bfb8488614c7c565b613c059190614d86565b90508060096000828254613c199190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff87166000908152600a602052604081208054839290613c53908490614c64565b9091555050815486908390600090613c7490849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550808260000160068282829054906101000a900466ffffffffffffff16613cbc9190614d9a565b825466ffffffffffffff9182166101009390930a928302919092021990911617905550815467ffffffffffffffff8581167501000000000000000000000000000000000000000000027fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff9188166d010000000000000000000000000002919091167fffffff00000000000000000000000000000000ffffffffffffffffffffffffff9092169190911717825560408051878152602081018390529081018690526060810185905273ffffffffffffffffffffffffffffffffffffffff8816907f8d57bc413d172db24c650affb289486236f8cf804335bc881bb5033401acd5da9060800160405180910390a250505050505050565b600062093a8060005483613de59190614cb9565b613def9190614d86565b611489906001614c64565b805160009065ffffffffffff1615801590610d3d5750506060015167ffffffffffffffff16111590565b6000836020015166ffffffffffffff1660096000828254613e459190614cb9565b909155505060208085015173ffffffffffffffffffffffffffffffffffffffff85166000908152600a90925260408220805466ffffffffffffff909216929091613e90908490614cb9565b9091555050835160405183815265ffffffffffff909116915073ffffffffffffffffffffffffffffffffffffffff8416907fdebd6c689e64ba7da4f3606a398615e9e8df6a117b5fb6fe720db13a3cd34f5a9060200160405180910390a273ffffffffffffffffffffffffffffffffffffffff9092166000908152600b602090815260408083209383529290522080547fffffff0000000000000000000000000000000000000000000000000000000000169055919050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600860209081526040808320845161ffff168452825282209083015160ff168203613f92579050806114bb565b826020015160ff16600103613fac578060010191506114bb565b826020015160ff16600203613fc6578060020191506114bb565b6003019392505050565b600080613fde600584614d86565b6000818152600660205260408120919250613ffa600586614fad565b90508060000361400c57509392505050565b8060010361401f57506001019392505050565b8060020361403257506002019392505050565b8060030361404557506003019392505050565b506004019392505050565b60008061405b611def565b61ffff16905060d081111561407557610d7d60d082614cb9565b5090565b815165ffffffffffff80831691161015614094575060009052565b80826000018181516140a69190614e86565b65ffffffffffff169052505050565b8065ffffffffffff16826020015165ffffffffffff1610156140dc57600060208301525050565b80826020018181516140a69190614e86565b8066ffffffffffffff16826040015166ffffffffffffff16101561411757600060408301525050565b80826040018181516141299190614ea5565b66ffffffffffffff169052505050565b80516141449061454f565b614151816020015161454f565b61415e816040015161454f565b610e27816060015161454f565b600061417682613293565b90508161418a8265ffffffffffff16612ef6565b1015611a885780610d3d81614fc1565b60006141ad826020015161ffff166146a1565b825160a0850151919250906000906141c59084614cd0565b61ffff16905080856020015165ffffffffffff166141e39190614ee6565b856040018181516141f49190614d9a565b66ffffffffffffff16905250600061420b836146ba565b905061421786826140ee565b82866000018181516142299190614ec5565b65ffffffffffff1690525061423e86846140b5565b614247866146cf565b50505061ffff1660a09092019190915250565b6000818360a0015161ffff16108015610d3d5750610d3d836136c8565b600061148960d083614d86565b806020015165ffffffffffff16816040018181516142a29190614d9a565b66ffffffffffffff16905250606081015160d061ffff90911610610e2757600060d0826060015161ffff166142d79190614cb9565b6142e2906001614c64565b905060006142ef82613fd0565b5465ffffffffffff169050801561328e57600061430b826146ba565b905061431784826140ee565b61432184836140b5565b81846000018181516143339190614ec5565b65ffffffffffff1690525050505050565b600061434f83613fd0565b80549091508290829060009061436e90849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600860209081526040808320855161ffff1684528252822090840151909160ff909116900361442a5781518154602084015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90921691909117178155614549565b826020015160ff16600103614490578151600182018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b826020015160ff166002036144f6578151600282018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b8151600382018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff909316929092179190911790555b50505050565b805165ffffffffffff1615610e27576000614571826020015161ffff16613fd0565b8251815491925065ffffffffffff9081169116106145cb578151815482906000906145a590849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050565b805482516145e19165ffffffffffff1690614e86565b65ffffffffffff166001036146195780547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016905550565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f73594c41593a3a5f72656d6f7665557365725472616e63686546726f6d476c6f60448201527f62616c3a205472616e63686520707265636973696f6e000000000000000000006064820152608401610ae0565b600060016146b060d084614c64565b6114899190614cb9565b600061148960d065ffffffffffff8416614c7c565b60808101515160608201515161ffff9081169116148015614705575080608001516020015160ff1681606001516020015160ff16145b15614726576040805180820190915260008082526020820152606082015250565b6147338160600151613895565b606082015250565b600060208083528351808285015260005b818110156147685785810183015185820160400152820161474c565b8181111561477a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a8857600080fd5b600080604083850312156147e557600080fd5b6147ee836147ae565b946020939093013593505050565b60006020828403121561480e57600080fd5b610d3d826147ae565b602080825282518282018190526000919060409081850190868401855b8281101561488c578151805165ffffffffffff1685528681015166ffffffffffffff16878601528581015167ffffffffffffffff90811687870152606091820151169085015260809093019290850190600101614834565b5091979650505050505050565b6000806000606084860312156148ae57600080fd5b6148b7846147ae565b92506148c5602085016147ae565b9150604084013590509250925092565b6000602082840312156148e757600080fd5b5035919050565b60408082528351828201819052600091906020906060850190828801855b8281101561494057614930848351805161ffff16825260209081015160ff16910152565b928501929084019060010161490c565b5050508481038286015285518082528683019183019060005b8181101561499257614982838551805165ffffffffffff16825260209081015161ffff16910152565b9284019291850191600101614959565b509098975050505050505050565b8015158114610e2757600080fd5b600080604083850312156149c157600080fd5b6149ca836147ae565b915060208301356149da816149a0565b809150509250929050565b60006101008201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff60408401511660408301526060830151614a3e6060840182805161ffff16825260209081015160ff16910152565b506080830151805161ffff1660a0840152602081015160ff1660c08401525061ffff60a08401511660e083015292915050565b600080600060608486031215614a8657600080fd5b614a8f846147ae565b95602085013595506040909401359392505050565b60008060408385031215614ab757600080fd5b50508035926020909101359150565b60008060008385036080811215614adc57600080fd5b614ae5856147ae565b935060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215614b1757600080fd5b50602084019150606084013590509250925092565b60008060408385031215614b3f57600080fd5b614b48836147ae565b9150614b56602084016147ae565b90509250929050565b600080600060608486031215614b7457600080fd5b614b7d846147ae565b9250602084013591506040840135614b94816149a0565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c5d57614c5d614bfd565b5060010190565b60008219821115614c7757614c77614bfd565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614cb457614cb4614bfd565b500290565b600082821015614ccb57614ccb614bfd565b500390565b600061ffff83811690831681811015614ceb57614ceb614bfd565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081614d3157614d31614bfd565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614d9557614d95614d57565b500490565b600066ffffffffffffff808316818516808303821115614dbc57614dbc614bfd565b01949350505050565b600060408284031215614dd757600080fd5b6040516040810181811067ffffffffffffffff82111715614e21577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052823561ffff81168114614e3657600080fd5b8152602083013560ff81168114614e4c57600080fd5b60208201529392505050565b600065ffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b02949350505050565b600065ffffffffffff83811690831681811015614ceb57614ceb614bfd565b600066ffffffffffffff83811690831681811015614ceb57614ceb614bfd565b600065ffffffffffff808316818516808303821115614dbc57614dbc614bfd565b600066ffffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818103614f2357614f23614bfd565b6001019392505050565b600061ffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818516808303821115614dbc57614dbc614bfd565b600060ff821660ff84168060ff03821115614f8857614f88614bfd565b019392505050565b600060208284031215614fa257600080fd5b8151610d3d816149a0565b600082614fbc57614fbc614d57565b500690565b600065ffffffffffff808316818103614f2357614f23614bfd56fea2646970667358221220812ee2a1ce818f8d37a4dd005c691802e51902640e24b614c40a0885704ddb3064736f6c634300080d0033000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", + "nonce": "0x10a", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x1a2edee", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0xbba4313eb3f82acea7e2272562da16cf3d9925bad0a66fef8cd6b6b9a66efdfc", + "transactionIndex": "0x116", + "blockHash": "0xe632f1b08254fff6bab7a24820800f2b2bff0c2981f7749d08b012c8ddfd3b7a", + "blockNumber": "0x164fed4", + "gasUsed": "0x4209da", + "effectiveGasPrice": "0x12c1561c", + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "to": null, + "contractAddress": "0x15ff5cbc5f1f37279f60509f8e5532c79ccf5318" + }, + { + "status": "0x1", + "cumulativeGasUsed": "0xd1a523", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x0", + "transactionHash": "0x509ea6c6b866ef6c1ea4fb018e2ba882fa5d6ff54cd040c1bd428d7b71c938ad", + "transactionIndex": "0x3c", + "blockHash": "0x5c4427e4b5e2cbde2d181f7458a9cdf55002e9aae92a0ed9d744f84cdfc60825", + "blockNumber": "0x164fed5", + "gasUsed": "0x441baf", + "effectiveGasPrice": "0x12c1561c", + "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", + "to": null, + "contractAddress": "0x276a0f45051dc2530e8b7354df3fd31673c6e8bd" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1758272005103, + "chain": 1, + "commit": "6ac9b26" +} \ No newline at end of file diff --git a/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-latest.json b/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-latest.json index 2f9becd..9899563 100644 --- a/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-latest.json +++ b/broadcast/mainnet/TransferUserRemovalUpgrade.s.sol/1/run-latest.json @@ -1,10 +1,10 @@ { "transactions": [ { - "hash": "0x467e5bcc80a5dec9ef99fd3fb05a768f3862505690d648d8695944371a08f07e", + "hash": "0xbba4313eb3f82acea7e2272562da16cf3d9925bad0a66fef8cd6b6b9a66efdfc", "transactionType": "CREATE", "contractName": "YelayStaking", - "contractAddress": "0x15eff5cdeb0b3b26f633ba523fdb2bb9d862d74e", + "contractAddress": "0x15ff5cbc5f1f37279f60509f8e5532c79ccf5318", "function": null, "arguments": [ "0xAEe5913FFd19dBcA4Fd1eF6F3925ed0414407d37", @@ -17,28 +17,28 @@ "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", "gas": "0x55d99b", "value": "0x0", - "input": "0x6101206040523480156200001257600080fd5b506040516200504b3803806200504b83398101604081905262000035916200010b565b806001600160a01b038116620000c35760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b0390811660805294851660a0525091831660c052821660e05216610100526200017b565b80516001600160a01b03811681146200010657600080fd5b919050565b600080600080600060a086880312156200012457600080fd5b6200012f86620000ee565b94506200013f60208701620000ee565b93506200014f60408701620000ee565b92506200015f60608701620000ee565b91506200016f60808701620000ee565b90509295509295909350565b60805160a05160c05160e05161010051614dd5620002766000396000818161055a015281816124b101528181613fbc01526142a10152600081816104ea0152818161254701528181613ba801528181613d100152613ed10152600081816105b401528181610a63015281816110b00152818161119e01528181611242015281816125fa01528181612c8301528181612e53015281816132ad0152613dc301526000818161044e015281816112d2015281816116750152818161219f0152818161229a0152818161248201528181612f1701528181613a6001528181613aa101528181613f8d015261403101526000612bb40152614dd56000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c80638129fc1c11610160578063b51609b4116100d8578063ec199a861161008c578063f122977711610071578063f122977714610617578063f4de10ac14610657578063fb6138ab1461066a57600080fd5b8063ec199a86146105f1578063f051c8c31461060457600080fd5b8063ccd83835116100bd578063ccd83835146105af578063d1e6044a146105d6578063d6fbddd7146105e957600080fd5b8063b51609b41461057c578063cbf9fe5f1461058f57600080fd5b80639ec8f9d51161012f578063a4d5e67c11610114578063a4d5e67c1461052f578063a694fc3a14610542578063acc2166a1461055557600080fd5b80639ec8f9d5146104e55780639fa451021461050c57600080fd5b80638129fc1c1461049e578063817b1cd2146104a657806383e25f8a146104af5780639a4c5719146104c257600080fd5b8063467e27f41161020e578063638634ee116101c257806373c2ad9c116101a757806373c2ad9c14610470578063780d9d2d146104835780637bb7bed11461048b57600080fd5b8063638634ee1461042157806372f702f31461044957600080fd5b8063540bb5dd116101f3578063540bb5dd146103aa57806356891412146103bd5780635f56a31a146103c657600080fd5b8063467e27f4146103645780634c86c3161461039757600080fd5b8063211dc32d116102655780632e0b00451161024a5780632e0b00451461032b5780632e17de781461033e5780632ee409081461035157600080fd5b8063211dc32d146102f857806327e235e31461030b57600080fd5b8063037ff3931461029757806310098ad5146102ac5780631338736f146102d2578063189ab267146102e5575b600080fd5b6102aa6102a536600461474f565b61075f565b005b6102bf6102ba366004614788565b610883565b6040519081526020015b60405180910390f35b6102aa6102e03660046147a5565b610923565b6102aa6102f33660046147c7565b6109b2565b6102bf610306366004614803565b610b44565b6102bf610319366004614788565b60376020526000908152604090205481565b6102aa610339366004614845565b610c50565b6102aa61034c36600461487a565b610e59565b6102aa61035f366004614893565b611338565b610387610372366004614788565b603a6020526000908152604090205460ff1681565b60405190151581526020016102c9565b6102aa6103a5366004614788565b611735565b6102aa6103b83660046148bf565b6118b0565b6102bf603b5481565b6103fc6103d4366004614788565b60396020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b61043461042f366004614788565b611a42565b60405163ffffffff90911681526020016102c9565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61047e3660046148bf565b611a81565b6034546102bf565b6103fc61049936600461487a565b611db2565b6102aa611de9565b6102bf60365481565b6102aa6104bd3660046148fd565b611f0d565b6103876104d0366004614788565b60386020526000908152604090205460ff1681565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b61038761051a366004614788565b60356020526000908152604090205460ff1681565b6102aa61053d366004614788565b61204c565b6102aa61055036600461487a565b612100565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61058a366004614932565b612204565b6102bf61059d366004614788565b603c6020526000908152604090205481565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa6105e4366004614974565b612399565b6102bf612516565b6102aa6105ff366004614974565b61266e565b6102aa61061236600461474f565b6127b1565b61062a610625366004614788565b6128c8565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b6102aa6106653660046149c0565b612a0e565b6106f0610678366004614788565b6033602052600090815260409020805460019091015463ffffffff808316926401000000008082048316936801000000000000000090920477ffffffffffffffffffffffffffffffffffffffffffffffff1692821691047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1685565b6040805163ffffffff9687168152948616602086015277ffffffffffffffffffffffffffffffffffffffffffffffff909316928401929092529290921660608201527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909116608082015260a0016102c9565b610767612b83565b6107f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152603a602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f875e6b685dc796d88ea0d32a721c8114d31e77f43a6bb0879c32e7321bb59df191015b60405180910390a25050565b60003315610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f59656c61795374616b696e673a3a617661696c61626c653a204f6e6c7920737460448201527f617469632d63616c6c61626c650000000000000000000000000000000000000060648201526084016107ef565b61091c82612c39565b9392505050565b60026001540361098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361099e81612d5b565b6109a9338484612d6d565b50506001805550565b600260015403610a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001556040517fd131ef5700000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d131ef5790610a9c90339087908790600401614ab5565b6020604051808303816000875af1158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190614b17565b603b805482019055336000818152603c6020908152604091829020805485019055815184815290810186905292935090917f1f04ae837474cd4ca082595601e32f6cd5de50b09ee3b24f3b3ccded6869b872910160405180910390a250506001805550565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260336020908152604080832093851683526037909152812054909190808303610bb5575073ffffffffffffffffffffffffffffffffffffffff83166000908152600390910160205260409020549050610c4a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526002830160209081526040808320546003860190925290912054670de0b6b3a764000082610bfe896128c8565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610c269190614b5f565b610c309085614b76565b610c3a9190614bb3565b610c449190614bee565b93505050505b92915050565b610c58612b83565b610ce4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b816000610cf18282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604090206001015463ffffffff80851691161115610d8f5773ffffffffffffffffffffffffffffffffffffffff84166000908152603360205260409020600181015481547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1663ffffffff90911664010000000002179055610dea565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1664010000000063ffffffff8616021790555b73ffffffffffffffffffffffffffffffffffffffff841660008181526033602090815260409182902054915164010000000090920463ffffffff1682527f21b2dd8950fc3a17e42d75bdfba3bf13f5a451f2d4b1dab7ab7f8d44f8a0692691015b60405180910390a250505050565b600260015403610ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610f7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b33610f8781612d5b565b600080610f9333612c39565b91509150600084118015610fa75750808411155b611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a756e7374616b653a20556e617661696c616260448201527f6c6520616d6f756e74207265717565737465640000000000000000000000000060648201526084016107ef565b603b80548390039055336000908152603c6020908152604080832080548690039055603680548890039055603790915281208054869003908190559003611126576040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260006024820152600160448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b15801561110957600080fd5b505af115801561111d573d6000803e3d6000fd5b505050506112b8565b60008483101561113f5761113a8386614b5f565b611142565b60005b905060008584101561115557600061115f565b61115f8685614b5f565b6040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260248101849052600060448201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b1580156111f757600080fd5b505af115801561120b573d6000803e3d6000fd5b50506040517f3f9a6020000000000000000000000000000000000000000000000000000000008152336004820152602481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169250633f9a60209150604401600060405180830381600087803b15801561129d57600080fd5b505af11580156112b1573d6000803e3d6000fd5b5050505050505b6112f973ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633866130df565b60405184815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f759060200160405180910390a25050600180555050565b6002600154036113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015533600090815260386020526040902054829060ff16806113cc57506113cc612b83565b61147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2043616e6e6f74207374616b6520666f72206f74686572206164647265737360648201527f6573000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260376020526040902054156116475773ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541661155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a204164647265737320616c7265616479207374616b6564000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260396020526040902054163314806115955750611595612b83565b611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2041646472657373207374616b656420627920616e6f74686572206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b8261165181612d5b565b61165b84846131b3565b61169d73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b73ffffffffffffffffffffffffffffffffffffffff84166000818152603960205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590519091907ff27841bf2ce46c8c33a68e103ff4238ad9192a4156d62c4b449f834e914d1291906117239087815260200190565b60405180910390a35050600180555050565b3360009081526038602052604090205460ff16801561177a575073ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541633145b806117885750611788612b83565b61183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f59656c61795374616b696e673a3a616c6c6f77556e7374616b65466f723a204360448201527f616e6e6f7420616c6c6f7720756e7374616b696e6720666f722061646472657360648201527f7300000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff811660008181526039602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055513392917f168f8317dbd30ba6270b791af2ed458991c1b3750d39d4b0019978debde8144591a350565b6118b8612b83565b611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8581169190911782556001820154919291169003611a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f59656c61795374616b696e673a3a6e6f74696679526577617264416d6f756e7460448201527f3a20546f6b656e206e6f7420796574206164646564000000000000000000000060648201526084016107ef565b611a3c848361336d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040812054610c4a904290640100000000900463ffffffff16613726565b611a89612b83565b611b15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020908152604080832060359092529091205460ff1615611bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f59656c61795374616b696e673a3a616464546f6b656e3a2043616e6e6f74206160448201527f646420626c61636b6c697374656420746f6b656e00000000000000000000000060648201526084016107ef565b8263ffffffff16600003611c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a616464546f6b656e3a20526577617264206460448201527f75726174696f6e2063616e6e6f7420626520300000000000000000000000000060648201526084016107ef565b600181015463ffffffff1615611d04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f59656c61795374616b696e673a3a616464546f6b656e3a20546f6b656e20616c60448201527f726561647920616464656400000000000000000000000000000000000000000060648201526084016107ef565b603480546001810182556000919091527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c10180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff84161781558115611a3c57611a3c848361336d565b60348181548110611dc257600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600054610100900460ff16611e045760005460ff1615611e08565b303b155b611e94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff16158015611ed357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b611edb61373b565b8015611f0a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b600260015403611f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b6002600155336000908152603a602052604090205460ff1680611f9f5750611f9f612b83565b61202d57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f59656c61795374616b696e673a3a63616e4c6f636b466f72416464726573733a60448201527f2043616e6e6f74206c6f636b20666f72206f746865722061646472657373657360648201526084016107ef565b8261203781612d5b565b612042848484612d6d565b5050600180555050565b612054612b83565b6120e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b806120ea816137dc565b8160006120f78282612f8d565b611a3c8461389e565b60026001540361216c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361217b81612d5b565b61218533836131b3565b6121c773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308561330f565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a2505060018055565b61220c612b83565b612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f59656c61795374616b696e673a3a7265636f76657245524332303a2043616e6e60448201527f6f7420776974686472617720746865207374616b696e6720746f6b656e00000060648201526084016107ef565b61239473ffffffffffffffffffffffffffffffffffffffff841682846130df565b505050565b600260015403612405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015560006124163383613a5c565b9050801561250e5761242733613c6d565b816124355761243533613ccb565b61243f33826131b3565b6040517fcd8515cf00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b1580156124f557600080fd5b505af1158015612509573d6000803e3d6000fd5b505050505b505060018055565b6040517f5fd619650000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635fd61965906024016020604051808303816000875af11580156125a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c99190614b17565b6040517f2e638b5f0000000000000000000000000000000000000000000000000000000081523360048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e638b5f90602401600060405180830381600087803b15801561265357600080fd5b505af1158015612667573d6000803e3d6000fd5b5050505090565b6002600154036126da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b61279b33613e22565b80156127aa576127aa33613e80565b5060018055565b6127b9612b83565b612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff821660008181526038602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f772c7bbbb43be2b0e7bb7f68909195e3d9d6454e330539807adc92c90a5141439101610877565b73ffffffffffffffffffffffffffffffffffffffff811660009081526033602052604081206036548203612926576001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b600181015460009063ffffffff1661293d85611a42565b6129479190614c06565b63ffffffff1690508060000361298857506001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b6036548254612a0691906129c29068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1684614b76565b6129cc9190614bb3565b6001840154612a01919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b61408c565b949350505050565b600260015403612a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b60005b8251811015612b7357612b61838281518110612b5357612b53614c2b565b60200260200101513361413e565b80612b6b81614c5a565b915050612b35565b50801561250e5761250e33613e80565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015612c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c349190614c92565b905090565b6040517fab95e67e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015260009182917f0000000000000000000000000000000000000000000000000000000000000000169063ab95e67e906024016020604051808303816000875af1158015612ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf09190614b17565b73ffffffffffffffffffffffffffffffffffffffff84166000908152603c6020526040902054909250612d24908390614b5f565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260376020526040902054612d549190614b5f565b9050915091565b612d6481613c6d565b611f0a81613ccb565b60008211612dfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f59656c61795374616b696e673a3a5f6c6f636b3a2043616e6e6f74206c6f636b60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107ef565b6040517f9e52c75200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390526000917f000000000000000000000000000000000000000000000000000000000000000090911690639e52c752906064016020604051808303816000875af1158015612e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec29190614b17565b603b80548201905573ffffffffffffffffffffffffffffffffffffffff8086166000908152603c60209081526040808320805486019055603680548901905560379091529020805486019055909150612f3f907f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff8616917fd4665e3049283582ba6f9eba07a5b3e12dab49e02da99e8927a47af5d134bea59101610e4b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260409020612fbb836128c8565b8160010160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555061301683611a42565b6001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905573ffffffffffffffffffffffffffffffffffffffff821615612394576130738383610b44565b73ffffffffffffffffffffffffffffffffffffffff929092166000908152600382016020908152604080832094909455600183015460029093019052919091206401000000009091047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526123949084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261435a565b60008111613242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f59656c61795374616b696e673a3a5f7374616b653a2043616e6e6f742073746160448201527f6b6520300000000000000000000000000000000000000000000000000000000060648201526084016107ef565b603680548201905573ffffffffffffffffffffffffffffffffffffffff82811660008181526037602052604090819020805485019055517f3f9a60200000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f000000000000000000000000000000000000000000000000000000000000000090911690633f9a602090604401600060405180830381600087803b1580156132f357600080fd5b505af1158015613307573d6000803e3d6000fd5b505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052611a3c9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613131565b81600061337a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902077ffffffffffffffffffffffffffffffffffffffffffffffff6133ca670de0b6b3a764000086614b76565b60018301546133ff919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b111561348d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a5f6e6f74696679526577617264416d6f756e60448201527f743a2052657761726420616d6f756e7420746f6f20626967000000000000000060648201526084016107ef565b80546000906134a29063ffffffff1642614caf565b8254909150640100000000900463ffffffff1642106135855781546134e89063ffffffff166134d9670de0b6b3a764000088614b76565b6134e39190614bb3565b614466565b825477ffffffffffffffffffffffffffffffffffffffffffffffff91909116680100000000000000000267ffffffffffffffff8216811784556040805188815263ffffffff9283169290931691909117602083015273ffffffffffffffffffffffffffffffffffffffff8816917f6a6f77044107a33658235d41bedbbaf2fe9ccdceb313143c947a5e76e1ec8474910160405180910390a26136b5565b81546000906135a3904290640100000000900463ffffffff16614b5f565b83549091506000906135db9068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1683614b76565b845490915060009061360a9063ffffffff1683613600670de0b6b3a76400008c614b76565b6134d99190614bee565b855477ffffffffffffffffffffffffffffffffffffffffffffffff8216680100000000000000000267ffffffffffffffff821681178855604080518c81526020810187905263ffffffff92831693831693909317908301528616606082015290915073ffffffffffffffffffffffffffffffffffffffff8a16907f12b903bd655ecbcd9e3c889d933351dee4800a3a080c2e8538dbe79be0143fc79060800160405180910390a25050505b60018201805463ffffffff4281167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009092169190911790915582549116640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff90911617905550505050565b6000818311613735578261091c565b50919050565b600054610100900460ff166137d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b6137da614510565b565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040902054640100000000900463ffffffff164211611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f59656c61795374616b696e673a3a5f6f6e6c7946696e69736865643a2052657760448201527f617264206e6f742066696e69736865640000000000000000000000000000000060648201526084016107ef565b60345460005b81811015612394578273ffffffffffffffffffffffffffffffffffffffff16603482815481106138d6576138d6614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1603613a4a57603461390a600184614b5f565b8154811061391a5761391a614c2b565b6000918252602090912001546034805473ffffffffffffffffffffffffffffffffffffffff909216918390811061395357613953614c2b565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060348054806139ac576139ac614cd7565b60008281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560405173ffffffffffffffffffffffffffffffffffffffff8516917f755c47ac85b75fe2251607db5a480aac818b88bb535814bf1e3c4784ae4f6baa91a2505050565b80613a5481614c5a565b9150506138a4565b60007f000000000000000000000000000000000000000000000000000000000000000083613a8a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600090815260336020908152604080832093891683526003840190915290205493508315613b515773ffffffffffffffffffffffffffffffffffffffff86166000908152600382016020526040808220919091555133907f6675fb32d259af2b7287aeeead9dc867fe8ca2cf653265dfadd302512ab59f0690613b489087815260200190565b60405180910390a25b8415613c6457613b6086613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c179190614b17565b90508015613c6257613c298186614bee565b60405181815290955033907fa73ffcc7352d89c062bc4e024ef35bf0227d67ac65ad1c8b334260a85a9e1e359060200160405180910390a25b505b50505092915050565b60345460005b8181101561239457613cb960348281548110613c9157613c91614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684612f8d565b80613cc381614c5a565b915050613c73565b6040517f5fd6196500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635fd61965906024016020604051808303816000875af1158015613d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7d9190614b17565b506040517f2e638b5f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690632e638b5f90602401600060405180830381600087803b158015613e0757600080fd5b505af1158015613e1b573d6000803e3d6000fd5b5050505050565b60345460005b8181101561239457613e6e60348281548110613e4657613e46614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461413e565b80613e7881614c5a565b915050613e28565b613e8981613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f409190614b17565b90508015614088576040517fcd8515cf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b15801561400057600080fd5b505af1158015614014573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116825260208201869052861693507f7d72689587d6992abf89f27bfc51b5ca89f108900547aa61628552e1e8e90bd0925001610877565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f323420626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b5090565b818161414a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604081208054909163ffffffff9091169003614209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f59656c61795374616b696e673a3a5f6765745265776172643a2042616420726560448201527f7761726420746f6b656e0000000000000000000000000000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260038201602052604090205480156133075773ffffffffffffffffffffffffffffffffffffffff858116600081815260038501602052604080822091909155517fcd8515cf00000000000000000000000000000000000000000000000000000000815260048101919091528782166024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063cd8515cf90606401600060405180830381600087803b1580156142e757600080fd5b505af11580156142fb573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8a8116825260208201869052891693507f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e92500160405180910390a2505050505050565b60006143bc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166145ad9092919063ffffffff16565b80519091501561239457808060200190518101906143da9190614c92565b612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107ef565b600077ffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f323820626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff166145a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b60018055565b6060612a0684846000858573ffffffffffffffffffffffffffffffffffffffff85163b614636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107ef565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161465f9190614d32565b60006040518083038185875af1925050503d806000811461469c576040519150601f19603f3d011682016040523d82523d6000602084013e6146a1565b606091505b50915091506146b18282866146bc565b979650505050505050565b606083156146cb57508161091c565b8251156146db5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef9190614d4e565b73ffffffffffffffffffffffffffffffffffffffff81168114611f0a57600080fd5b8015158114611f0a57600080fd5b803561474a81614731565b919050565b6000806040838503121561476257600080fd5b823561476d8161470f565b9150602083013561477d81614731565b809150509250929050565b60006020828403121561479a57600080fd5b813561091c8161470f565b600080604083850312156147b857600080fd5b50508035926020909101359150565b60008082840360608112156147db57600080fd5b60408112156147e957600080fd5b50919360408501359350915050565b803561474a8161470f565b6000806040838503121561481657600080fd5b82356148218161470f565b9150602083013561477d8161470f565b803563ffffffff8116811461474a57600080fd5b6000806040838503121561485857600080fd5b82356148638161470f565b915061487160208401614831565b90509250929050565b60006020828403121561488c57600080fd5b5035919050565b600080604083850312156148a657600080fd5b82356148b18161470f565b946020939093013593505050565b6000806000606084860312156148d457600080fd5b83356148df8161470f565b92506148ed60208501614831565b9150604084013590509250925092565b60008060006060848603121561491257600080fd5b833561491d8161470f565b95602085013595506040909401359392505050565b60008060006060848603121561494757600080fd5b83356149528161470f565b92506020840135915060408401356149698161470f565b809150509250925092565b60006020828403121561498657600080fd5b813561091c81614731565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156149d357600080fd5b823567ffffffffffffffff808211156149eb57600080fd5b818501915085601f8301126149ff57600080fd5b8135602082821115614a1357614a13614991565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108682111715614a5657614a56614991565b604052928352818301935084810182019289841115614a7457600080fd5b948201945b83861015614a9957614a8a866147f8565b85529482019493820193614a79565b9650614aa8905087820161473f565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff8416815260808101833561ffff8116808214614ae557600080fd5b8060208501525050602084013560ff8116808214614b0257600080fd5b60408401525060609091019190915292915050565b600060208284031215614b2957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614b7157614b71614b30565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bae57614bae614b30565b500290565b600082614be9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115614c0157614c01614b30565b500190565b600063ffffffff83811690831681811015614c2357614c23614b30565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c8b57614c8b614b30565b5060010190565b600060208284031215614ca457600080fd5b815161091c81614731565b600063ffffffff808316818516808303821115614cce57614cce614b30565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60005b83811015614d21578181015183820152602001614d09565b83811115611a3c5750506000910152565b60008251614d44818460208701614d06565b9190910192915050565b6020815260008251806020840152614d6d816040850160208701614d06565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220531900718a54d29e179192854d9c39e1e75835747533bac072bc3923a607114f64736f6c634300080d0033000000000000000000000000aee5913ffd19dbca4fd1ef6f3925ed0414407d37000000000000000000000000c0f7b477e05b29097546daae2e3df2decbeb405d000000000000000000000000705f023b2ce85b0c7039b43c8e217f61a3a3bb130000000000000000000000003e246beb1a0daf94fb376c44cac2d1c8b979c0d0000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", - "nonce": "0x107", + "input": "0x6101206040523480156200001257600080fd5b506040516200504b3803806200504b83398101604081905262000035916200010b565b806001600160a01b038116620000c35760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b0390811660805294851660a0525091831660c052821660e05216610100526200017b565b80516001600160a01b03811681146200010657600080fd5b919050565b600080600080600060a086880312156200012457600080fd5b6200012f86620000ee565b94506200013f60208701620000ee565b93506200014f60408701620000ee565b92506200015f60608701620000ee565b91506200016f60808701620000ee565b90509295509295909350565b60805160a05160c05160e05161010051614dd5620002766000396000818161055a015281816124b101528181613fbc01526142a10152600081816104ea0152818161254701528181613ba801528181613d100152613ed10152600081816105b401528181610a63015281816110b00152818161119e01528181611242015281816125fa01528181612c8301528181612e53015281816132ad0152613dc301526000818161044e015281816112d2015281816116750152818161219f0152818161229a0152818161248201528181612f1701528181613a6001528181613aa101528181613f8d015261403101526000612bb40152614dd56000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c80638129fc1c11610160578063b51609b4116100d8578063ec199a861161008c578063f122977711610071578063f122977714610617578063f4de10ac14610657578063fb6138ab1461066a57600080fd5b8063ec199a86146105f1578063f051c8c31461060457600080fd5b8063ccd83835116100bd578063ccd83835146105af578063d1e6044a146105d6578063d6fbddd7146105e957600080fd5b8063b51609b41461057c578063cbf9fe5f1461058f57600080fd5b80639ec8f9d51161012f578063a4d5e67c11610114578063a4d5e67c1461052f578063a694fc3a14610542578063acc2166a1461055557600080fd5b80639ec8f9d5146104e55780639fa451021461050c57600080fd5b80638129fc1c1461049e578063817b1cd2146104a657806383e25f8a146104af5780639a4c5719146104c257600080fd5b8063467e27f41161020e578063638634ee116101c257806373c2ad9c116101a757806373c2ad9c14610470578063780d9d2d146104835780637bb7bed11461048b57600080fd5b8063638634ee1461042157806372f702f31461044957600080fd5b8063540bb5dd116101f3578063540bb5dd146103aa57806356891412146103bd5780635f56a31a146103c657600080fd5b8063467e27f4146103645780634c86c3161461039757600080fd5b8063211dc32d116102655780632e0b00451161024a5780632e0b00451461032b5780632e17de781461033e5780632ee409081461035157600080fd5b8063211dc32d146102f857806327e235e31461030b57600080fd5b8063037ff3931461029757806310098ad5146102ac5780631338736f146102d2578063189ab267146102e5575b600080fd5b6102aa6102a536600461474f565b61075f565b005b6102bf6102ba366004614788565b610883565b6040519081526020015b60405180910390f35b6102aa6102e03660046147a5565b610923565b6102aa6102f33660046147c7565b6109b2565b6102bf610306366004614803565b610b44565b6102bf610319366004614788565b60376020526000908152604090205481565b6102aa610339366004614845565b610c50565b6102aa61034c36600461487a565b610e59565b6102aa61035f366004614893565b611338565b610387610372366004614788565b603a6020526000908152604090205460ff1681565b60405190151581526020016102c9565b6102aa6103a5366004614788565b611735565b6102aa6103b83660046148bf565b6118b0565b6102bf603b5481565b6103fc6103d4366004614788565b60396020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b61043461042f366004614788565b611a42565b60405163ffffffff90911681526020016102c9565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61047e3660046148bf565b611a81565b6034546102bf565b6103fc61049936600461487a565b611db2565b6102aa611de9565b6102bf60365481565b6102aa6104bd3660046148fd565b611f0d565b6103876104d0366004614788565b60386020526000908152604090205460ff1681565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b61038761051a366004614788565b60356020526000908152604090205460ff1681565b6102aa61053d366004614788565b61204c565b6102aa61055036600461487a565b612100565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa61058a366004614932565b612204565b6102bf61059d366004614788565b603c6020526000908152604090205481565b6103fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102aa6105e4366004614974565b612399565b6102bf612516565b6102aa6105ff366004614974565b61266e565b6102aa61061236600461474f565b6127b1565b61062a610625366004614788565b6128c8565b6040517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff90911681526020016102c9565b6102aa6106653660046149c0565b612a0e565b6106f0610678366004614788565b6033602052600090815260409020805460019091015463ffffffff808316926401000000008082048316936801000000000000000090920477ffffffffffffffffffffffffffffffffffffffffffffffff1692821691047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1685565b6040805163ffffffff9687168152948616602086015277ffffffffffffffffffffffffffffffffffffffffffffffff909316928401929092529290921660608201527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff909116608082015260a0016102c9565b610767612b83565b6107f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166000818152603a602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f875e6b685dc796d88ea0d32a721c8114d31e77f43a6bb0879c32e7321bb59df191015b60405180910390a25050565b60003315610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f59656c61795374616b696e673a3a617661696c61626c653a204f6e6c7920737460448201527f617469632d63616c6c61626c650000000000000000000000000000000000000060648201526084016107ef565b61091c82612c39565b9392505050565b60026001540361098f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361099e81612d5b565b6109a9338484612d6d565b50506001805550565b600260015403610a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001556040517fd131ef5700000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d131ef5790610a9c90339087908790600401614ab5565b6020604051808303816000875af1158015610abb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adf9190614b17565b603b805482019055336000818152603c6020908152604091829020805485019055815184815290810186905292935090917f1f04ae837474cd4ca082595601e32f6cd5de50b09ee3b24f3b3ccded6869b872910160405180910390a250506001805550565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260336020908152604080832093851683526037909152812054909190808303610bb5575073ffffffffffffffffffffffffffffffffffffffff83166000908152600390910160205260409020549050610c4a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526002830160209081526040808320546003860190925290912054670de0b6b3a764000082610bfe896128c8565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610c269190614b5f565b610c309085614b76565b610c3a9190614bb3565b610c449190614bee565b93505050505b92915050565b610c58612b83565b610ce4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b816000610cf18282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604090206001015463ffffffff80851691161115610d8f5773ffffffffffffffffffffffffffffffffffffffff84166000908152603360205260409020600181015481547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1663ffffffff90911664010000000002179055610dea565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff1664010000000063ffffffff8616021790555b73ffffffffffffffffffffffffffffffffffffffff841660008181526033602090815260409182902054915164010000000090920463ffffffff1682527f21b2dd8950fc3a17e42d75bdfba3bf13f5a451f2d4b1dab7ab7f8d44f8a0692691015b60405180910390a250505050565b600260015403610ec5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615610f7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b33610f8781612d5b565b600080610f9333612c39565b91509150600084118015610fa75750808411155b611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a756e7374616b653a20556e617661696c616260448201527f6c6520616d6f756e74207265717565737465640000000000000000000000000060648201526084016107ef565b603b80548390039055336000908152603c6020908152604080832080548690039055603680548890039055603790915281208054869003908190559003611126576040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260006024820152600160448201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b15801561110957600080fd5b505af115801561111d573d6000803e3d6000fd5b505050506112b8565b60008483101561113f5761113a8386614b5f565b611142565b60005b905060008584101561115557600061115f565b61115f8685614b5f565b6040517fe4c4949500000000000000000000000000000000000000000000000000000000815233600482015260248101849052600060448201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e4c4949590606401600060405180830381600087803b1580156111f757600080fd5b505af115801561120b573d6000803e3d6000fd5b50506040517f3f9a6020000000000000000000000000000000000000000000000000000000008152336004820152602481018490527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169250633f9a60209150604401600060405180830381600087803b15801561129d57600080fd5b505af11580156112b1573d6000803e3d6000fd5b5050505050505b6112f973ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633866130df565b60405184815233907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f759060200160405180910390a25050600180555050565b6002600154036113a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015533600090815260386020526040902054829060ff16806113cc57506113cc612b83565b61147e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2043616e6e6f74207374616b6520666f72206f74686572206164647265737360648201527f6573000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260376020526040902054156116475773ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541661155d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a204164647265737320616c7265616479207374616b6564000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff818116600090815260396020526040902054163314806115955750611595612b83565b611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604360248201527f59656c61795374616b696e673a3a63616e5374616b65466f724164647265737360448201527f3a2041646472657373207374616b656420627920616e6f74686572206164647260648201527f6573730000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b8261165181612d5b565b61165b84846131b3565b61169d73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b73ffffffffffffffffffffffffffffffffffffffff84166000818152603960205260409081902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000163390811790915590519091907ff27841bf2ce46c8c33a68e103ff4238ad9192a4156d62c4b449f834e914d1291906117239087815260200190565b60405180910390a35050600180555050565b3360009081526038602052604090205460ff16801561177a575073ffffffffffffffffffffffffffffffffffffffff8181166000908152603960205260409020541633145b806117885750611788612b83565b61183a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604160248201527f59656c61795374616b696e673a3a616c6c6f77556e7374616b65466f723a204360448201527f616e6e6f7420616c6c6f7720756e7374616b696e6720666f722061646472657360648201527f7300000000000000000000000000000000000000000000000000000000000000608482015260a4016107ef565b73ffffffffffffffffffffffffffffffffffffffff811660008181526039602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055513392917f168f8317dbd30ba6270b791af2ed458991c1b3750d39d4b0019978debde8144591a350565b6118b8612b83565b611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff8581169190911782556001820154919291169003611a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603560248201527f59656c61795374616b696e673a3a6e6f74696679526577617264416d6f756e7460448201527f3a20546f6b656e206e6f7420796574206164646564000000000000000000000060648201526084016107ef565b611a3c848361336d565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040812054610c4a904290640100000000900463ffffffff16613726565b611a89612b83565b611b15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260336020908152604080832060359092529091205460ff1615611bd6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f59656c61795374616b696e673a3a616464546f6b656e3a2043616e6e6f74206160448201527f646420626c61636b6c697374656420746f6b656e00000000000000000000000060648201526084016107ef565b8263ffffffff16600003611c6c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f59656c61795374616b696e673a3a616464546f6b656e3a20526577617264206460448201527f75726174696f6e2063616e6e6f7420626520300000000000000000000000000060648201526084016107ef565b600181015463ffffffff1615611d04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f59656c61795374616b696e673a3a616464546f6b656e3a20546f6b656e20616c60448201527f726561647920616464656400000000000000000000000000000000000000000060648201526084016107ef565b603480546001810182556000919091527f46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c10180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861617905580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff84161781558115611a3c57611a3c848361336d565b60348181548110611dc257600080fd5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b600054610100900460ff16611e045760005460ff1615611e08565b303b155b611e94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff16158015611ed357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000166101011790555b611edb61373b565b8015611f0a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b50565b600260015403611f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b6002600155336000908152603a602052604090205460ff1680611f9f5750611f9f612b83565b61202d57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f59656c61795374616b696e673a3a63616e4c6f636b466f72416464726573733a60448201527f2043616e6e6f74206c6f636b20666f72206f746865722061646472657373657360648201526084016107ef565b8261203781612d5b565b612042848484612d6d565b5050600180555050565b612054612b83565b6120e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b806120ea816137dc565b8160006120f78282612f8d565b611a3c8461389e565b60026001540361216c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553361217b81612d5b565b61218533836131b3565b6121c773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633308561330f565b60405182815233907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d9060200160405180910390a2505060018055565b61220c612b83565b612298576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f59656c61795374616b696e673a3a7265636f76657245524332303a2043616e6e60448201527f6f7420776974686472617720746865207374616b696e6720746f6b656e00000060648201526084016107ef565b61239473ffffffffffffffffffffffffffffffffffffffff841682846130df565b505050565b600260015403612405576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b600260015560006124163383613a5c565b9050801561250e5761242733613c6d565b816124355761243533613ccb565b61243f33826131b3565b6040517fcd8515cf00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b1580156124f557600080fd5b505af1158015612509573d6000803e3d6000fd5b505050505b505060018055565b6040517f5fd619650000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690635fd61965906024016020604051808303816000875af11580156125a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c99190614b17565b6040517f2e638b5f0000000000000000000000000000000000000000000000000000000081523360048201529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690632e638b5f90602401600060405180830381600087803b15801561265357600080fd5b505af1158015612667573d6000803e3d6000fd5b5050505090565b6002600154036126da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612792576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b61279b33613e22565b80156127aa576127aa33613e80565b5060018055565b6127b9612b83565b612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e65720000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff821660008181526038602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f772c7bbbb43be2b0e7bb7f68909195e3d9d6454e330539807adc92c90a5141439101610877565b73ffffffffffffffffffffffffffffffffffffffff811660009081526033602052604081206036548203612926576001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b600181015460009063ffffffff1661293d85611a42565b6129479190614c06565b63ffffffff1690508060000361298857506001015464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b6036548254612a0691906129c29068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1684614b76565b6129cc9190614bb3565b6001840154612a01919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b61408c565b949350505050565b600260015403612a7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107ef565b60026001553360009081526039602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612b32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a6e6f745374616b656442793a2043616e6e6f60448201527f7420776974686472617720756e74696c20616c6c6f776564000000000000000060648201526084016107ef565b60005b8251811015612b7357612b61838281518110612b5357612b53614c2b565b60200260200101513361413e565b80612b6b81614c5a565b915050612b35565b50801561250e5761250e33613e80565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015612c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c349190614c92565b905090565b6040517fab95e67e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff828116600483015260009182917f0000000000000000000000000000000000000000000000000000000000000000169063ab95e67e906024016020604051808303816000875af1158015612ccc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cf09190614b17565b73ffffffffffffffffffffffffffffffffffffffff84166000908152603c6020526040902054909250612d24908390614b5f565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260376020526040902054612d549190614b5f565b9050915091565b612d6481613c6d565b611f0a81613ccb565b60008211612dfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f59656c61795374616b696e673a3a5f6c6f636b3a2043616e6e6f74206c6f636b60448201527f203000000000000000000000000000000000000000000000000000000000000060648201526084016107ef565b6040517f9e52c75200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052604482018390526000917f000000000000000000000000000000000000000000000000000000000000000090911690639e52c752906064016020604051808303816000875af1158015612e9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec29190614b17565b603b80548201905573ffffffffffffffffffffffffffffffffffffffff8086166000908152603c60209081526040808320805486019055603680548901905560379091529020805486019055909150612f3f907f00000000000000000000000000000000000000000000000000000000000000001633308661330f565b604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff8616917fd4665e3049283582ba6f9eba07a5b3e12dab49e02da99e8927a47af5d134bea59101610e4b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152603360205260409020612fbb836128c8565b8160010160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555061301683611a42565b6001820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff9290921691909117905573ffffffffffffffffffffffffffffffffffffffff821615612394576130738383610b44565b73ffffffffffffffffffffffffffffffffffffffff929092166000908152600382016020908152604080832094909455600183015460029093019052919091206401000000009091047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16905550565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526123949084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261435a565b60008111613242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f59656c61795374616b696e673a3a5f7374616b653a2043616e6e6f742073746160448201527f6b6520300000000000000000000000000000000000000000000000000000000060648201526084016107ef565b603680548201905573ffffffffffffffffffffffffffffffffffffffff82811660008181526037602052604090819020805485019055517f3f9a60200000000000000000000000000000000000000000000000000000000081526004810191909152602481018390527f000000000000000000000000000000000000000000000000000000000000000090911690633f9a602090604401600060405180830381600087803b1580156132f357600080fd5b505af1158015613307573d6000803e3d6000fd5b505050505050565b60405173ffffffffffffffffffffffffffffffffffffffff80851660248301528316604482015260648101829052611a3c9085907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613131565b81600061337a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260336020526040902077ffffffffffffffffffffffffffffffffffffffffffffffff6133ca670de0b6b3a764000086614b76565b60018301546133ff919064010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16614bee565b111561348d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f59656c61795374616b696e673a3a5f6e6f74696679526577617264416d6f756e60448201527f743a2052657761726420616d6f756e7420746f6f20626967000000000000000060648201526084016107ef565b80546000906134a29063ffffffff1642614caf565b8254909150640100000000900463ffffffff1642106135855781546134e89063ffffffff166134d9670de0b6b3a764000088614b76565b6134e39190614bb3565b614466565b825477ffffffffffffffffffffffffffffffffffffffffffffffff91909116680100000000000000000267ffffffffffffffff8216811784556040805188815263ffffffff9283169290931691909117602083015273ffffffffffffffffffffffffffffffffffffffff8816917f6a6f77044107a33658235d41bedbbaf2fe9ccdceb313143c947a5e76e1ec8474910160405180910390a26136b5565b81546000906135a3904290640100000000900463ffffffff16614b5f565b83549091506000906135db9068010000000000000000900477ffffffffffffffffffffffffffffffffffffffffffffffff1683614b76565b845490915060009061360a9063ffffffff1683613600670de0b6b3a76400008c614b76565b6134d99190614bee565b855477ffffffffffffffffffffffffffffffffffffffffffffffff8216680100000000000000000267ffffffffffffffff821681178855604080518c81526020810187905263ffffffff92831693831693909317908301528616606082015290915073ffffffffffffffffffffffffffffffffffffffff8a16907f12b903bd655ecbcd9e3c889d933351dee4800a3a080c2e8538dbe79be0143fc79060800160405180910390a25050505b60018201805463ffffffff4281167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009092169190911790915582549116640100000000027fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff90911617905550505050565b6000818311613735578261091c565b50919050565b600054610100900460ff166137d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b6137da614510565b565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260336020526040902054640100000000900463ffffffff164211611f0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f59656c61795374616b696e673a3a5f6f6e6c7946696e69736865643a2052657760448201527f617264206e6f742066696e69736865640000000000000000000000000000000060648201526084016107ef565b60345460005b81811015612394578273ffffffffffffffffffffffffffffffffffffffff16603482815481106138d6576138d6614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1603613a4a57603461390a600184614b5f565b8154811061391a5761391a614c2b565b6000918252602090912001546034805473ffffffffffffffffffffffffffffffffffffffff909216918390811061395357613953614c2b565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060348054806139ac576139ac614cd7565b60008281526020812082017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905590910190915560405173ffffffffffffffffffffffffffffffffffffffff8516917f755c47ac85b75fe2251607db5a480aac818b88bb535814bf1e3c4784ae4f6baa91a2505050565b80613a5481614c5a565b9150506138a4565b60007f000000000000000000000000000000000000000000000000000000000000000083613a8a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600090815260336020908152604080832093891683526003840190915290205493508315613b515773ffffffffffffffffffffffffffffffffffffffff86166000908152600382016020526040808220919091555133907f6675fb32d259af2b7287aeeead9dc867fe8ca2cf653265dfadd302512ab59f0690613b489087815260200190565b60405180910390a25b8415613c6457613b6086613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613bf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c179190614b17565b90508015613c6257613c298186614bee565b60405181815290955033907fa73ffcc7352d89c062bc4e024ef35bf0227d67ac65ad1c8b334260a85a9e1e359060200160405180910390a25b505b50505092915050565b60345460005b8181101561239457613cb960348281548110613c9157613c91614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1684612f8d565b80613cc381614c5a565b915050613c73565b6040517f5fd6196500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690635fd61965906024016020604051808303816000875af1158015613d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d7d9190614b17565b506040517f2e638b5f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f00000000000000000000000000000000000000000000000000000000000000001690632e638b5f90602401600060405180830381600087803b158015613e0757600080fd5b505af1158015613e1b573d6000803e3d6000fd5b5050505050565b60345460005b8181101561239457613e6e60348281548110613e4657613e46614c2b565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff168461413e565b80613e7881614c5a565b915050613e28565b613e8981613ccb565b6040517fc7b3120500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063c7b31205906024016020604051808303816000875af1158015613f1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f409190614b17565b90508015614088576040517fcd8515cf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390527f0000000000000000000000000000000000000000000000000000000000000000169063cd8515cf90606401600060405180830381600087803b15801561400057600080fd5b505af1158015614014573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116825260208201869052861693507f7d72689587d6992abf89f27bfc51b5ca89f108900547aa61628552e1e8e90bd0925001610877565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f323420626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b5090565b818161414a8282612f8d565b73ffffffffffffffffffffffffffffffffffffffff841660009081526033602052604081208054909163ffffffff9091169003614209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f59656c61795374616b696e673a3a5f6765745265776172643a2042616420726560448201527f7761726420746f6b656e0000000000000000000000000000000000000000000060648201526084016107ef565b73ffffffffffffffffffffffffffffffffffffffff8416600090815260038201602052604090205480156133075773ffffffffffffffffffffffffffffffffffffffff858116600081815260038501602052604080822091909155517fcd8515cf00000000000000000000000000000000000000000000000000000000815260048101919091528782166024820152604481018390527f00000000000000000000000000000000000000000000000000000000000000009091169063cd8515cf90606401600060405180830381600087803b1580156142e757600080fd5b505af11580156142fb573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8a8116825260208201869052891693507f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e92500160405180910390a2505050505050565b60006143bc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166145ad9092919063ffffffff16565b80519091501561239457808060200190518101906143da9190614c92565b612394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107ef565b600077ffffffffffffffffffffffffffffffffffffffffffffffff82111561413a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f323820626974730000000000000000000000000000000000000000000000000060648201526084016107ef565b600054610100900460ff166145a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107ef565b60018055565b6060612a0684846000858573ffffffffffffffffffffffffffffffffffffffff85163b614636576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107ef565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161465f9190614d32565b60006040518083038185875af1925050503d806000811461469c576040519150601f19603f3d011682016040523d82523d6000602084013e6146a1565b606091505b50915091506146b18282866146bc565b979650505050505050565b606083156146cb57508161091c565b8251156146db5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ef9190614d4e565b73ffffffffffffffffffffffffffffffffffffffff81168114611f0a57600080fd5b8015158114611f0a57600080fd5b803561474a81614731565b919050565b6000806040838503121561476257600080fd5b823561476d8161470f565b9150602083013561477d81614731565b809150509250929050565b60006020828403121561479a57600080fd5b813561091c8161470f565b600080604083850312156147b857600080fd5b50508035926020909101359150565b60008082840360608112156147db57600080fd5b60408112156147e957600080fd5b50919360408501359350915050565b803561474a8161470f565b6000806040838503121561481657600080fd5b82356148218161470f565b9150602083013561477d8161470f565b803563ffffffff8116811461474a57600080fd5b6000806040838503121561485857600080fd5b82356148638161470f565b915061487160208401614831565b90509250929050565b60006020828403121561488c57600080fd5b5035919050565b600080604083850312156148a657600080fd5b82356148b18161470f565b946020939093013593505050565b6000806000606084860312156148d457600080fd5b83356148df8161470f565b92506148ed60208501614831565b9150604084013590509250925092565b60008060006060848603121561491257600080fd5b833561491d8161470f565b95602085013595506040909401359392505050565b60008060006060848603121561494757600080fd5b83356149528161470f565b92506020840135915060408401356149698161470f565b809150509250925092565b60006020828403121561498657600080fd5b813561091c81614731565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080604083850312156149d357600080fd5b823567ffffffffffffffff808211156149eb57600080fd5b818501915085601f8301126149ff57600080fd5b8135602082821115614a1357614a13614991565b8160051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108682111715614a5657614a56614991565b604052928352818301935084810182019289841115614a7457600080fd5b948201945b83861015614a9957614a8a866147f8565b85529482019493820193614a79565b9650614aa8905087820161473f565b9450505050509250929050565b73ffffffffffffffffffffffffffffffffffffffff8416815260808101833561ffff8116808214614ae557600080fd5b8060208501525050602084013560ff8116808214614b0257600080fd5b60408401525060609091019190915292915050565b600060208284031215614b2957600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614b7157614b71614b30565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614bae57614bae614b30565b500290565b600082614be9577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60008219821115614c0157614c01614b30565b500190565b600063ffffffff83811690831681811015614c2357614c23614b30565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c8b57614c8b614b30565b5060010190565b600060208284031215614ca457600080fd5b815161091c81614731565b600063ffffffff808316818516808303821115614cce57614cce614b30565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60005b83811015614d21578181015183820152602001614d09565b83811115611a3c5750506000910152565b60008251614d44818460208701614d06565b9190910192915050565b6020815260008251806020840152614d6d816040850160208701614d06565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea264697066735822122000256408b2705f2b6c829dc0e4dfc8d342f06539f31397b6965f27e0a32b756c64736f6c634300080d0033000000000000000000000000aee5913ffd19dbca4fd1ef6f3925ed0414407d37000000000000000000000000c0f7b477e05b29097546daae2e3df2decbeb405d000000000000000000000000705f023b2ce85b0c7039b43c8e217f61a3a3bb130000000000000000000000003e246beb1a0daf94fb376c44cac2d1c8b979c0d0000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", + "nonce": "0x109", "chainId": "0x1" }, "additionalContracts": [], "isFixedGasLimit": false }, { - "hash": "0xc0328652092a23da6081f4ba49c5750502b74108b19d01d2a7cb7d29df54f42d", + "hash": "0x509ea6c6b866ef6c1ea4fb018e2ba882fa5d6ff54cd040c1bd428d7b71c938ad", "transactionType": "CREATE", "contractName": "sYLAY", - "contractAddress": "0x3d79fbbf918327968e75dd0f5b1d25ac65c8dfa2", + "contractAddress": "0x276a0f45051dc2530e8b7354df3fd31673c6e8bd", "function": null, "arguments": [ "0xAB865D95A574511a6c893C38A4D892275ca70570" ], "transaction": { "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", - "gas": "0x588a73", + "gas": "0x588a63", "value": "0x0", - "input": "0x60a06040523480156200001157600080fd5b5060405162005135380380620051358339810160408190526200003491620000d5565b806001600160a01b038116620000c25760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b03166080525062000107565b600060208284031215620000e857600080fd5b81516001600160a01b03811681146200010057600080fd5b9392505050565b60805161501262000123600039600061393d01526150126000f3fe608060405234801561001057600080fd5b50600436106103205760003560e01c806388278207116101a7578063cbfd3a43116100ee578063d7febbca11610097578063e4c4949511610071578063e4c4949514610a00578063edcd508a14610a13578063f46eccc414610a3657600080fd5b8063d7febbca146109c5578063dd62ed3e146109cd578063e42084df146109e057600080fd5b8063d131ef57116100c8578063d131ef571461090a578063d4f54eae1461091d578063d6a182b3146109b257600080fd5b8063cbfd3a43146108cf578063cf456ae7146108d7578063d09f88b5146108ea57600080fd5b8063a04d804311610150578063ab95e67e1161012a578063ab95e67e146108a1578063c8800d1c146108b4578063c8a168ef146108c757600080fd5b8063a04d804314610873578063a5ef7fab14610886578063a9059cbb1461088e57600080fd5b806395d89b411161018157806395d89b41146108115780639dc29fac1461084d5780639e52c7521461086057600080fd5b8063882782071461067f5780638afd9bc4146106d85780638c2a8034146106fe57600080fd5b806344b066f51161026b5780635eb5164d116102145780637a1957ca116101ee5780637a1957ca1461065c5780637a81cf261461066457806385cf95ac1461066c57600080fd5b80635eb5164d1461063857806370a082311461064057806378362cd61461065357600080fd5b80635b1534cb116102455780635b1534cb1461054e5780635b4653441461060f5780635df0f4b61461062f57600080fd5b806344b066f514610510578063468682c01461051a5780635638f3dd1461053b57600080fd5b80632d43b867116102cd5780633f9a6020116102a75780633f9a6020146104e157806340c10f19146104f457806343481a181461050757600080fd5b80632d43b867146103f65780632e638b5f146104b2578063313ce567146104c757600080fd5b806316349cff116102fe57806316349cff146103ba57806318160ddd146103db57806323b872dd146103e357600080fd5b806306fdde0314610325578063095ea7b31461037757806312fb31751461039a575b600080fd5b6103616040518060400160405280600c81526020017f5374616b65642059656c6179000000000000000000000000000000000000000081525081565b60405161036e919061473b565b60405180910390f35b61038a6103853660046147d2565b610a59565b604051901515815260200161036e565b6103ad6103a83660046147fc565b610ae9565b60405161036e9190614817565b6103cd6103c83660046147fc565b610d25565b60405190815260200161036e565b6103cd610d44565b61038a6103f1366004614899565b610d83565b6104756104043660046148d5565b60066020908152600091825260409182902082518083018452815465ffffffffffff9081168252845180850186526001840154821681528551808601875260028501548316815286518087018852600386015484168152875196870190975260049094015490911684529093909285565b60408051955165ffffffffffff9081168752945185166020870152925184169285019290925251821660608401525116608082015260a00161036e565b6104c56104c03660046147fc565b610e0e565b005b6104cf601281565b60405160ff909116815260200161036e565b6104c56104ef3660046147d2565b610e2a565b6104c56105023660046147d2565b610eb1565b6103cd60035481565b6103cd62093a8081565b61052d6105283660046147fc565b610f5a565b60405161036e9291906148ee565b6104c56105493660046149ae565b6110c5565b6105ce61055c3660046147d2565b600b60209081526000928352604080842090915290825290205465ffffffffffff81169066ffffffffffffff66010000000000008204169067ffffffffffffffff6d01000000000000000000000000008204811691750100000000000000000000000000000000000000000090041684565b6040805165ffffffffffff909516855266ffffffffffffff909316602085015267ffffffffffffffff9182169284019290925216606082015260800161036e565b61062261061d3660046147fc565b6112a5565b60405161036e91906149e5565b6103cd60005481565b6103cd6113c8565b6103cd61064e3660046147fc565b6113d9565b6103cd60095481565b6104c561145b565b6103cd60d081565b6103cd61067a3660046148d5565b61146d565b61068761148f565b60405161036e9190600060808201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff604084015116604083015261ffff606084015116606083015292915050565b6106eb6106e63660046147d2565b6114c2565b60405161ffff909116815260200161036e565b6107a861070c3660046147d2565b600860209081526000928352604080842082529183529181902081518083018352815465ffffffffffff808216835261ffff660100000000000092839004811684880152855180870187526001860154808416825284900482168189015286518088018852600287015480851682528590048316818a015287518089019098526003909601549283168752929091041694840194909452929184565b60408051855165ffffffffffff908116825260209687015161ffff908116888401528651821693830193909352948601518216606082015283518516608082015292850151811660a0840152815190931660c0830152909201511660e08201526101000161036e565b6103616040518060400160405280600581526020017f73594c415900000000000000000000000000000000000000000000000000000081525081565b6104c561085b3660046147d2565b611509565b6103cd61086e366004614a71565b611661565b6103cd6108813660046148d5565b6116b1565b6106eb61177d565b61038a61089c3660046147d2565b611798565b6103cd6108af3660046147fc565b611823565b6104c56108c2366004614aa4565b611a8d565b6106eb611def565b6103cd611dfa565b6104c56108e53660046149ae565b611e10565b6103cd6108f83660046147fc565b60046020526000908152604090205481565b6103cd610918366004614ac6565b611fca565b610687604080516080810182526000808252602082018190529181018290526060810191909152506040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925273010000000000000000000000000000000000000090910461ffff16606082015290565b6106226109c03660046147fc565b612443565b6103cd6124ac565b6103cd6109db366004614b2c565b6124c3565b6103cd6109ee3660046147fc565b600a6020526000908152604090205481565b6104c5610a0e366004614b5f565b61254e565b61038a610a213660046147fc565b60026020526000908152604090205460ff1681565b61038a610a443660046147fc565b60016020526000908152604090205460ff1681565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f73594c41593a3a617070726f76653a2050726f6869626974656420416374696f60448201527f6e0000000000000000000000000000000000000000000000000000000000000060648201526000906084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c60209081526040808320805482518185028101850190935280835260609493830182828015610b7d57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610b445790505b50505050509050805167ffffffffffffffff811115610b9e57610b9e614b9f565b604051908082528060200260200182016040528015610c0e57816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610bbc5790505b50915060005b8151811015610d1e5773ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604081208351909190849084908110610c5957610c59614bce565b60209081029190910181015161ffff1682528181019290925260409081016000208151608081018352905465ffffffffffff8116825266ffffffffffffff66010000000000008204169382019390935267ffffffffffffffff6d0100000000000000000000000000840481169282019290925275010000000000000000000000000000000000000000009092041660608201528351849083908110610d0057610d00614bce565b60200260200101819052508080610d1690614c2c565b915050610c14565b5050919050565b600080610d3183612b94565b509050610d3d81612ddd565b9392505050565b600080610d4f612e1a565b509050610d5d600954612ef6565b610d6682612ddd565b600354610d739190614c64565b610d7d9190614c64565b91505090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f73594c41593a3a7472616e7366657246726f6d3a2050726f686962697465642060448201527f416374696f6e00000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b610e16612f08565b610e1e612fa7565b610e27816130d6565b50565b610e32612f08565b610e3a612fa7565b81610e44816130d6565b6000610e4f83613293565b9050610e5b84826132a5565b8373ffffffffffffffffffffffffffffffffffffffff167fe24fb5918dfdd34ee115de98f0d2960d0ce30d6169a74367fd256ff3b5048b7484604051610ea391815260200190565b60405180910390a250505050565b610eb9613629565b8060036000828254610ecb9190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054839290610f05908490614c64565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe906020015b60405180910390a25050565b6060806000610f6884612b94565b509050610f74816136c8565b156110bf5760608101516000610f89836136e2565b90508067ffffffffffffffff811115610fa457610fa4614b9f565b604051908082528060200260200182016040528015610fe957816020015b6040805180820190915260008082526020820152815260200190600190039081610fc25790505b5093508067ffffffffffffffff81111561100557611005614b9f565b60405190808252806020026020018201604052801561104a57816020015b60408051808201909152600080825260208201528152602001906001900390816110235790505b50945060005b84518110156110bb576110638784613755565b85828151811061107557611075614bce565b60200260200101819052508286828151811061109357611093614bce565b60200260200101819052506110a783613895565b9250806110b381614c2c565b915050611050565b5050505b50915091565b6110cd61390c565b611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f73594c41593a3a7365744772616475616c4d696e7465723a206772616475616c60448201527f206d696e7465722063616e6e6f7420626520746865207a65726f20616464726560648201527f7373000000000000000000000000000000000000000000000000000000000000608482015260a401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fd066a75103af5bd5a100de58375e7cf390671150ac63a9f845137e25042bf1589101610f4e565b6112fb6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b5073ffffffffffffffffffffffffffffffffffffffff16600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285015266ffffffffffffff6c01000000000000000000000000909104168185015283518085018552600183015461ffff808216835260ff6201000092839004811684880152606085019390935286518088019097526002850154808216885291909104909116938501939093526080810193909352600301541660a082015290565b6113d660d062093a80614c7c565b81565b6000806113e583612b94565b5073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205490915061141890612ef6565b61142182612ddd565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260409020546114519190614c64565b610d3d9190614c64565b611463612f08565b61146b612fa7565b565b600061147c62093a8083614c7c565b6000546114899190614c64565b92915050565b6040805160808101825260008082526020820181905291810182905260608101829052906114bb612e1a565b5092915050565b600c60205281600052604060002081815481106114de57600080fd5b9060005260206000209060109182820401919006600202915091509054906101000a900461ffff1681565b611511613629565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020548111156115c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a6275726e3a205573657220696e7374616e7420706f776572206260448201527f616c616e636520746f6f206c6f770000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906115fb908490614cb9565b9250508190555080600360008282546116149190614cb9565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df790602001610f4e565b600061166b612f08565b600061167684613293565b9050611697858265ffffffffffff1661168d611def565b61ffff16866139bd565b6116a88165ffffffffffff16612ef6565b95945050505050565b6000805482101561176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f73594c41593a3a6765745472616e636865496e6465783a2054696d65206d757360448201527f74206265206d6f7265206f7220657175616c20746f207468652066697273742060648201527f7472616e6368652074696d650000000000000000000000000000000000000000608482015260a401610ae0565b61177382613dd1565b61ffff1692915050565b60006001611789611def565b6117939190614cd0565b905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73594c41593a3a7472616e736665723a2050726f68696269746564204163746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b600061182d612f08565b6000611837611def565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c60205260408120805461ffff93909316935091905b81811015611a7857600083828154811061188657611886614bce565b6000918252602080832060108304015473ffffffffffffffffffffffffffffffffffffffff8b168452600b82526040808520600f9094166002026101000a90910461ffff16808552928252928390208351608081018552905465ffffffffffff811682526601000000000000810466ffffffffffffff16928201929092526d0100000000000000000000000000820467ffffffffffffffff908116948201949094527501000000000000000000000000000000000000000000909104909216606083015291506119568682613dfa565b15611a635761196a81898461ffff16613e24565b6119749088614c64565b965084611982600186614cb9565b8154811061199257611992614bce565b90600052602060002090601091828204019190066002029054906101000a900461ffff168584815481106119c8576119c8614bce565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555084805480611a0757611a07614cf3565b60008281526020902060107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191820401805461ffff6002600f8516026101000a0219169055905583611a5b81614d22565b945050611a71565b82611a6d81614c2c565b9350505b505061186a565b50611a8284612ef6565b93505050505b919050565b336000908152600b602090815260408083208584529091529020805465ffffffffffff16611b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204e6f206c6f636b757060448201527f20706f736974696f6e20666f756e6400000000000000000000000000000000006064820152608401610ae0565b80547501000000000000000000000000000000000000000000900467ffffffffffffffff168211611bf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020646560448201527f61646c696e652073686f756c6420626520696e207468652066757475726500006064820152608401610ae0565b60d0611bfc8484614cb9565b1115611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020706560448201527f72696f642065786365656473206120746f74616c206f662034207965617273006064820152608401610ae0565b805460009060d090611cbf907501000000000000000000000000000000000000000000900467ffffffffffffffff1685614cb9565b8354611cd3919065ffffffffffff16614c7c565b611cdd9190614d86565b90508060096000828254611cf19190614c64565b9091555050336000908152600a602052604081208054839290611d15908490614c64565b9091555050815481908390600690611d419084906601000000000000900466ffffffffffffff16614d9a565b82546101009290920a66ffffffffffffff8181021990931691909216919091021790555081547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000067ffffffffffffffff851602178255604080518581526020810183905290810184905233907ff105efae42c9c08d5eafed7135b77068bb81a1845393b4473ae79e86c94e97f190606001610ea3565b600061179342613dd1565b6000611793611e07611def565b61ffff1661146d565b611e1861390c565b611ea4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f73594c41593a3a7365744d696e7465723a206d696e7465722063616e6e6f742060448201527f626520746865207a65726f2061646472657373000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f583b0aa0e528532caf4b907c11d7a8158a122fe2a6fb80cd9b09776ebea8d92d9101610f4e565b6000611fd4612f08565b611fdc612fa7565b83611fe6816130d6565b600061200086611ffb36889003880188614dc5565b613f49565b805490915060009061201f906601000000000000900461ffff16613fd0565b825490915065ffffffffffff16806120b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f616c7265616479206c6f636b65640000000000000000000000000000000000006064820152608401610ae0565b60006120c3614050565b905061ffff811615806120e75750835461ffff808316660100000000000090920416115b612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f6d617475726564000000000000000000000000000000000000000000000000006064820152608401610ae0565b83546000906601000000000000900461ffff1661218e611def565b6121989190614cd0565b6121a69061ffff1684614e58565b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600760205260409020805465ffffffffffff928316935085926006916121f49185916601000000000000900416614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555082600560000160068282829054906101000a900465ffffffffffff1661223c9190614e86565b825465ffffffffffff9182166101009390930a92830291909202199091161790555073ffffffffffffffffffffffffffffffffffffffff8a1660009081526007602052604090208054829190600c906122b090849066ffffffffffffff6c0100000000000000000000000090910416614ea5565b92506101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550806005600001600c8282829054906101000a900466ffffffffffffff166122fb9190614ea5565b825466ffffffffffffff9182166101009390930a92830291909202199091161790555084547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016855583548390859060009061236090849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506123ac8a8465ffffffffffff168760000160069054906101000a900461ffff1661ffff168b6139bd565b84546040805165ffffffffffff86168152660100000000000090920461ffff16602083015266ffffffffffffff83169082015273ffffffffffffffffffffffffffffffffffffffff8b16907ff6028e08bd4265711d36773ee2b3ab6b15824a3938c53ce8022919564a1b8d049060600160405180910390a26124358365ffffffffffff16612ef6565b9a9950505050505050505050565b6124996040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b60006124a483612b94565b509392505050565b6000806124b7612e1a565b509050610d7d81612ddd565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a616c6c6f77616e63653a2050726f686962697465642041637460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b612556612f08565b61255e612fa7565b82612568816130d6565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600760209081526040808320815160c081018352815465ffffffffffff80821683526601000000000000808304821684880190815266ffffffffffffff6c010000000000000000000000009485900481168689015287518089018952600188015461ffff808216835260ff62010000928390048116848e01526060808b01949094528b51808d018d5260028c015480841682529390930416828d01526080808a0192909252600390990154891660a089015289519081018a526005548087168252948504909516998501999099529382049093169582019590955273010000000000000000000000000000000000000090940490921693830193909352518251929391926126929190614ec5565b835190915065ffffffffffff16156126b7576126b2828460000151614079565b600083525b602083015165ffffffffffff16156126df576126d78284602001516140b5565b600060208401525b604083015166ffffffffffffff1615612708576127008284604001516140ee565b600060408401525b612711836136c8565b156128915760608301515160808401515161ffff9182169116815b81811161288d5773ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452825291829020825160c081018452815465ffffffffffff8082166080840190815261ffff660100000000000093849004811660a0860152908452865180880188526001860154808416825284900482168188015284870152865180880188526002860154808416825284900482168188015284880152865180880190975260039094015490811686520490911691830191909152606081019190915261280390614139565b73ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000908116825560018201805482169055600282018054821690556003909101805490911690558061288581614c2c565b91505061272c565b5050505b6040518060400160405280600061ffff168152602001600060ff16815250836060018190525082600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160010160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060808201518160020160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060a08201518160030160006101000a81548161ffff021916908361ffff16021790555090505081600560008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160000160136101000a81548161ffff021916908361ffff1602179055509050508673ffffffffffffffffffffffffffffffffffffffff167f828d875bb1fd38ee261c0c069e9bc63df13bf8e7e59acc2385ea66b86c8351378787604051612b3d9291909182521515602082015260400190565b60405180910390a284612b8b576000612b558761416b565b90508065ffffffffffff168265ffffffffffff161115612b89576000612b7b8284614e86565b9050612b8789826132a5565b505b505b50505050505050565b612bea6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760209081526040808320815160c081018352815465ffffffffffff808216835266010000000000008204168286015266ffffffffffffff6c01000000000000000000000000909104168184015282518084018452600183015461ffff808216835260ff62010000928390048116848901526060850193909352855180870190965260028501548082168752919091049091169484019490945260808101929092526003015490911660a082015281612cbe61177d565b90508061ffff168260a0015161ffff1603612cde57509360009350915050565b612ce7826136c8565b15612dca576000612cf6614050565b905061ffff811615612d5c576000612d12878560600151613755565b90505b612d1e846136c8565b8015612d3657508161ffff16816020015161ffff1611155b15612d5a57612d45848261419a565b612d53878560600151613755565b9050612d15565b505b612d6a838361ffff1661425a565b15612dc85760008360a0015183612d819190614cd0565b61ffff16905080846020015165ffffffffffff16612d9f9190614ee6565b84604001818151612db09190614d9a565b66ffffffffffffff169052505061ffff821660a08401525b505b61ffff1660a08201529360019350915050565b6000612dfd612df8836040015166ffffffffffffff16612ef6565b614277565b8251612e109065ffffffffffff16612ef6565b6114899190614c64565b60408051608081018252600080825260208201819052918101829052606081018290529080612e4761177d565b6040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925261ffff7301000000000000000000000000000000000000009092048216606082015294501690505b80836060015161ffff161015612ef15760608301805190612ed882614f0c565b61ffff16905250612ee883614284565b60019150612eb8565b509091565b60006114896509184e72a00083614c7c565b3360009081526002602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f73594c41593a3a5f6f6e6c794772616475616c4d696e7465723a20496e73756660448201527f66696369656e742050726976696c6567657300000000000000000000000000006064820152608401610ae0565b600080612fb2612e1a565b9150915080156130d2578151600580546020808601516040808801516060808a015165ffffffffffff9889167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009097168717660100000000000099909516988902949094177fffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9093169283027fffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff161773010000000000000000000000000000000000000061ffff90951694850217909655815194855292840195909552938201527fb968421445b12044d4cf86ecc7f3f9589111c9efab4b7561360aea60f3e832eb9101610f4e565b5050565b6000806130e283612b94565b91509150801561328e5773ffffffffffffffffffffffffffffffffffffffff831660008181526007602090815260409182902085518154878401518886015165ffffffffffff9384167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009093168317660100000000000094909216938402919091177fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9092169182021784556060808a015180516001870180549289015161ffff9283167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000948516176201000060ff92831681029190911790925560808e0151805160028b018054928d0151918616929096169190911791169091021790915560a08b0151600390960180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169690911695861790558651928352948201929092529384015292917febc99566369f3a0bb7856de228673359eed87e744e506850f424863304607709910160405180910390a35b505050565b60006114896509184e72a00083614d86565b8065ffffffffffff166000036132b9575050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285019081526c0100000000000000000000000090910466ffffffffffffff168286015284518086018652600184015461ffff8082168352620100009182900460ff9081168489015260608601939093528751808901909852600286015480821689529190910490911694860194909452608082019490945260039091015490911660a082015281519091839161339b908390614ec5565b65ffffffffffff9081169091526005805485935090916006916133ca9185916601000000000000900416614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555060006133fc848360800151613755565b90506000613408611def565b90506000613415846136c8565b159050808061342f57508161ffff16836020015161ffff16105b1561347e5760006134438560800151613895565b9050811561345357606085018190525b60808501526040805180820190915265ffffffffffff8616815261ffff83166020820152925061349c565b84836000018181516134909190614ec5565b65ffffffffffff169052505b6134ae836020015161ffff1686614344565b6134bd86856080015185614395565b50505073ffffffffffffffffffffffffffffffffffffffff90921660009081526007602090815260409182902084518154838701519487015166ffffffffffffff166c01000000000000000000000000027fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff65ffffffffffff9687166601000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090931696909316959095171716929092178255606084015180516001840180549284015160ff908116620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000095861661ffff958616171790925560808801518051600288018054929097015190921690920291909316928216929092179190911790915560a09093015160039091018054919093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000919091161790915550565b3360009081526001602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f73594c41593a3a5f6f6e6c794d696e7465723a20496e73756666696369656e7460448201527f2050726976696c656765730000000000000000000000000000000000000000006064820152608401610ae0565b60608101515160009061ffff1615611a8857506001919050565b6060810151608082015160208201518251600093929160ff1690613707906004614f2d565b6137119190614f4e565b816020015160ff168260000151600461372a9190614f2d565b6137349190614f4e565b61373e9190614cd0565b613749906001614f4e565b61ffff16949350505050565b6040805180820182526000808252602080830182905273ffffffffffffffffffffffffffffffffffffffff8616825260088152838220855161ffff16835281529281209284015191929160ff1690036137d95760408051808201909152815465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660010361381c5760408051808201909152600182015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660020361385f5760408051808201909152600282015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b60408051808201909152600382015465ffffffffffff811682526601000000000000900461ffff16602082015291505092915050565b6040805180820190915260008082526020820152815161ffff166000036138bf5760018152919050565b6003826020015160ff1610156138f457815161ffff16815260208201516138e7906001614f6b565b60ff166020820152919050565b8151613901906001614f4e565b61ffff168152919050565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015613999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117939190614f90565b60006139c98383614cb9565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600b60209081526040808320878452909152902080549192509065ffffffffffff1615613aea5780547501000000000000000000000000000000000000000000900467ffffffffffffffff168314613ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f73594c41593a3a6d696e744c6f636b75703a204c6f636b757020706f7369746960448201527f6f6e20616c726561647920657869737473207769746820646966666572656e7460648201527f20646561646c696e650000000000000000000000000000000000000000000000608482015260a401610ae0565b613bed565b613af2611def565b61ffff1683118015613b05575060d08211155b613b91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a6d696e744c6f636b75703a20496e76616c696420646561646c60448201527f696e6500000000000000000000000000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600c6020908152604082208054600181018255908352912060108204018054600f9092166002026101000a61ffff81810219909316928716029190911790555b600060d0613bfb8488614c7c565b613c059190614d86565b90508060096000828254613c199190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff87166000908152600a602052604081208054839290613c53908490614c64565b9091555050815486908390600090613c7490849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550808260000160068282829054906101000a900466ffffffffffffff16613cbc9190614d9a565b825466ffffffffffffff9182166101009390930a928302919092021990911617905550815467ffffffffffffffff8581167501000000000000000000000000000000000000000000027fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff9188166d010000000000000000000000000002919091167fffffff00000000000000000000000000000000ffffffffffffffffffffffffff9092169190911717825560408051878152602081018390529081018690526060810185905273ffffffffffffffffffffffffffffffffffffffff8816907f8d57bc413d172db24c650affb289486236f8cf804335bc881bb5033401acd5da9060800160405180910390a250505050505050565b600062093a8060005483613de59190614cb9565b613def9190614d86565b611489906001614c64565b805160009065ffffffffffff1615801590610d3d5750506060015167ffffffffffffffff16111590565b6000836020015166ffffffffffffff1660096000828254613e459190614cb9565b909155505060208085015173ffffffffffffffffffffffffffffffffffffffff85166000908152600a90925260408220805466ffffffffffffff909216929091613e90908490614cb9565b9091555050835160405183815265ffffffffffff909116915073ffffffffffffffffffffffffffffffffffffffff8416907fdebd6c689e64ba7da4f3606a398615e9e8df6a117b5fb6fe720db13a3cd34f5a9060200160405180910390a273ffffffffffffffffffffffffffffffffffffffff9092166000908152600b602090815260408083209383529290522080547fffffff0000000000000000000000000000000000000000000000000000000000169055919050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600860209081526040808320845161ffff168452825282209083015160ff168203613f92579050806114bb565b826020015160ff16600103613fac578060010191506114bb565b826020015160ff16600203613fc6578060020191506114bb565b6003019392505050565b600080613fde600584614d86565b6000818152600660205260408120919250613ffa600586614fad565b90508060000361400c57509392505050565b8060010361401f57506001019392505050565b8060020361403257506002019392505050565b8060030361404557506003019392505050565b506004019392505050565b60008061405b611def565b61ffff16905060d081111561407557610d7d60d082614cb9565b5090565b815165ffffffffffff80831691161015614094575060009052565b80826000018181516140a69190614e86565b65ffffffffffff169052505050565b8065ffffffffffff16826020015165ffffffffffff1610156140dc57600060208301525050565b80826020018181516140a69190614e86565b8066ffffffffffffff16826040015166ffffffffffffff16101561411757600060408301525050565b80826040018181516141299190614ea5565b66ffffffffffffff169052505050565b80516141449061454f565b614151816020015161454f565b61415e816040015161454f565b610e27816060015161454f565b600061417682613293565b90508161418a8265ffffffffffff16612ef6565b1015611a885780610d3d81614fc1565b60006141ad826020015161ffff166146a1565b825160a0850151919250906000906141c59084614cd0565b61ffff16905080856020015165ffffffffffff166141e39190614ee6565b856040018181516141f49190614d9a565b66ffffffffffffff16905250600061420b836146ba565b905061421786826140ee565b82866000018181516142299190614ec5565b65ffffffffffff1690525061423e86846140b5565b614247866146cf565b50505061ffff1660a09092019190915250565b6000818360a0015161ffff16108015610d3d5750610d3d836136c8565b600061148960d083614d86565b806020015165ffffffffffff16816040018181516142a29190614d9a565b66ffffffffffffff16905250606081015160d061ffff90911610610e2757600060d0826060015161ffff166142d79190614cb9565b6142e2906001614c64565b905060006142ef82613fd0565b5465ffffffffffff169050801561328e57600061430b826146ba565b905061431784826140ee565b61432184836140b5565b81846000018181516143339190614ec5565b65ffffffffffff1690525050505050565b600061434f83613fd0565b80549091508290829060009061436e90849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600860209081526040808320855161ffff1684528252822090840151909160ff909116900361442a5781518154602084015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90921691909117178155614549565b826020015160ff16600103614490578151600182018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b826020015160ff166002036144f6578151600282018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b8151600382018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff909316929092179190911790555b50505050565b805165ffffffffffff1615610e27576000614571826020015161ffff16613fd0565b8251815491925065ffffffffffff9081169116106145cb578151815482906000906145a590849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050565b805482516145e19165ffffffffffff1690614e86565b65ffffffffffff166001036146195780547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016905550565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f73594c41593a3a5f72656d6f7665557365725472616e63686546726f6d476c6f60448201527f62616c3a205472616e63686520707265636973696f6e000000000000000000006064820152608401610ae0565b600060016146b060d084614c64565b6114899190614cb9565b600061148960d065ffffffffffff8416614c7c565b60808101515160608201515161ffff9081169116148015614705575080608001516020015160ff1681606001516020015160ff16145b15614726576040805180820190915260008082526020820152606082015250565b6147338160600151613895565b606082015250565b600060208083528351808285015260005b818110156147685785810183015185820160400152820161474c565b8181111561477a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a8857600080fd5b600080604083850312156147e557600080fd5b6147ee836147ae565b946020939093013593505050565b60006020828403121561480e57600080fd5b610d3d826147ae565b602080825282518282018190526000919060409081850190868401855b8281101561488c578151805165ffffffffffff1685528681015166ffffffffffffff16878601528581015167ffffffffffffffff90811687870152606091820151169085015260809093019290850190600101614834565b5091979650505050505050565b6000806000606084860312156148ae57600080fd5b6148b7846147ae565b92506148c5602085016147ae565b9150604084013590509250925092565b6000602082840312156148e757600080fd5b5035919050565b60408082528351828201819052600091906020906060850190828801855b8281101561494057614930848351805161ffff16825260209081015160ff16910152565b928501929084019060010161490c565b5050508481038286015285518082528683019183019060005b8181101561499257614982838551805165ffffffffffff16825260209081015161ffff16910152565b9284019291850191600101614959565b509098975050505050505050565b8015158114610e2757600080fd5b600080604083850312156149c157600080fd5b6149ca836147ae565b915060208301356149da816149a0565b809150509250929050565b60006101008201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff60408401511660408301526060830151614a3e6060840182805161ffff16825260209081015160ff16910152565b506080830151805161ffff1660a0840152602081015160ff1660c08401525061ffff60a08401511660e083015292915050565b600080600060608486031215614a8657600080fd5b614a8f846147ae565b95602085013595506040909401359392505050565b60008060408385031215614ab757600080fd5b50508035926020909101359150565b60008060008385036080811215614adc57600080fd5b614ae5856147ae565b935060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215614b1757600080fd5b50602084019150606084013590509250925092565b60008060408385031215614b3f57600080fd5b614b48836147ae565b9150614b56602084016147ae565b90509250929050565b600080600060608486031215614b7457600080fd5b614b7d846147ae565b9250602084013591506040840135614b94816149a0565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c5d57614c5d614bfd565b5060010190565b60008219821115614c7757614c77614bfd565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614cb457614cb4614bfd565b500290565b600082821015614ccb57614ccb614bfd565b500390565b600061ffff83811690831681811015614ceb57614ceb614bfd565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081614d3157614d31614bfd565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614d9557614d95614d57565b500490565b600066ffffffffffffff808316818516808303821115614dbc57614dbc614bfd565b01949350505050565b600060408284031215614dd757600080fd5b6040516040810181811067ffffffffffffffff82111715614e21577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052823561ffff81168114614e3657600080fd5b8152602083013560ff81168114614e4c57600080fd5b60208201529392505050565b600065ffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b02949350505050565b600065ffffffffffff83811690831681811015614ceb57614ceb614bfd565b600066ffffffffffffff83811690831681811015614ceb57614ceb614bfd565b600065ffffffffffff808316818516808303821115614dbc57614dbc614bfd565b600066ffffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818103614f2357614f23614bfd565b6001019392505050565b600061ffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818516808303821115614dbc57614dbc614bfd565b600060ff821660ff84168060ff03821115614f8857614f88614bfd565b019392505050565b600060208284031215614fa257600080fd5b8151610d3d816149a0565b600082614fbc57614fbc614d57565b500690565b600065ffffffffffff808316818103614f2357614f23614bfd56fea26469706673582212207cfe728256ec43cef057e55d308d31e516142f7aaa745a7a6bf6d227771cef8064736f6c634300080d0033000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", - "nonce": "0x108", + "input": "0x60a06040523480156200001157600080fd5b5060405162005135380380620051358339810160408190526200003491620000d5565b806001600160a01b038116620000c25760405162461bcd60e51b815260206004820152604360248201527f59656c61794f776e61626c653a3a636f6e7374727563746f723a2059656c617960448201527f206f776e657220636f6e747261637420616464726573732063616e6e6f74206260648201526206520360ec1b608482015260a40160405180910390fd5b6001600160a01b03166080525062000107565b600060208284031215620000e857600080fd5b81516001600160a01b03811681146200010057600080fd5b9392505050565b60805161501262000123600039600061393d01526150126000f3fe608060405234801561001057600080fd5b50600436106103205760003560e01c806388278207116101a7578063cbfd3a43116100ee578063d7febbca11610097578063e4c4949511610071578063e4c4949514610a00578063edcd508a14610a13578063f46eccc414610a3657600080fd5b8063d7febbca146109c5578063dd62ed3e146109cd578063e42084df146109e057600080fd5b8063d131ef57116100c8578063d131ef571461090a578063d4f54eae1461091d578063d6a182b3146109b257600080fd5b8063cbfd3a43146108cf578063cf456ae7146108d7578063d09f88b5146108ea57600080fd5b8063a04d804311610150578063ab95e67e1161012a578063ab95e67e146108a1578063c8800d1c146108b4578063c8a168ef146108c757600080fd5b8063a04d804314610873578063a5ef7fab14610886578063a9059cbb1461088e57600080fd5b806395d89b411161018157806395d89b41146108115780639dc29fac1461084d5780639e52c7521461086057600080fd5b8063882782071461067f5780638afd9bc4146106d85780638c2a8034146106fe57600080fd5b806344b066f51161026b5780635eb5164d116102145780637a1957ca116101ee5780637a1957ca1461065c5780637a81cf261461066457806385cf95ac1461066c57600080fd5b80635eb5164d1461063857806370a082311461064057806378362cd61461065357600080fd5b80635b1534cb116102455780635b1534cb1461054e5780635b4653441461060f5780635df0f4b61461062f57600080fd5b806344b066f514610510578063468682c01461051a5780635638f3dd1461053b57600080fd5b80632d43b867116102cd5780633f9a6020116102a75780633f9a6020146104e157806340c10f19146104f457806343481a181461050757600080fd5b80632d43b867146103f65780632e638b5f146104b2578063313ce567146104c757600080fd5b806316349cff116102fe57806316349cff146103ba57806318160ddd146103db57806323b872dd146103e357600080fd5b806306fdde0314610325578063095ea7b31461037757806312fb31751461039a575b600080fd5b6103616040518060400160405280600c81526020017f5374616b65642059656c6179000000000000000000000000000000000000000081525081565b60405161036e919061473b565b60405180910390f35b61038a6103853660046147d2565b610a59565b604051901515815260200161036e565b6103ad6103a83660046147fc565b610ae9565b60405161036e9190614817565b6103cd6103c83660046147fc565b610d25565b60405190815260200161036e565b6103cd610d44565b61038a6103f1366004614899565b610d83565b6104756104043660046148d5565b60066020908152600091825260409182902082518083018452815465ffffffffffff9081168252845180850186526001840154821681528551808601875260028501548316815286518087018852600386015484168152875196870190975260049094015490911684529093909285565b60408051955165ffffffffffff9081168752945185166020870152925184169285019290925251821660608401525116608082015260a00161036e565b6104c56104c03660046147fc565b610e0e565b005b6104cf601281565b60405160ff909116815260200161036e565b6104c56104ef3660046147d2565b610e2a565b6104c56105023660046147d2565b610eb1565b6103cd60035481565b6103cd62093a8081565b61052d6105283660046147fc565b610f5a565b60405161036e9291906148ee565b6104c56105493660046149ae565b6110c5565b6105ce61055c3660046147d2565b600b60209081526000928352604080842090915290825290205465ffffffffffff81169066ffffffffffffff66010000000000008204169067ffffffffffffffff6d01000000000000000000000000008204811691750100000000000000000000000000000000000000000090041684565b6040805165ffffffffffff909516855266ffffffffffffff909316602085015267ffffffffffffffff9182169284019290925216606082015260800161036e565b61062261061d3660046147fc565b6112a5565b60405161036e91906149e5565b6103cd60005481565b6103cd6113c8565b6103cd61064e3660046147fc565b6113d9565b6103cd60095481565b6104c561145b565b6103cd60d081565b6103cd61067a3660046148d5565b61146d565b61068761148f565b60405161036e9190600060808201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff604084015116604083015261ffff606084015116606083015292915050565b6106eb6106e63660046147d2565b6114c2565b60405161ffff909116815260200161036e565b6107a861070c3660046147d2565b600860209081526000928352604080842082529183529181902081518083018352815465ffffffffffff808216835261ffff660100000000000092839004811684880152855180870187526001860154808416825284900482168189015286518088018852600287015480851682528590048316818a015287518089019098526003909601549283168752929091041694840194909452929184565b60408051855165ffffffffffff908116825260209687015161ffff908116888401528651821693830193909352948601518216606082015283518516608082015292850151811660a0840152815190931660c0830152909201511660e08201526101000161036e565b6103616040518060400160405280600581526020017f73594c415900000000000000000000000000000000000000000000000000000081525081565b6104c561085b3660046147d2565b611509565b6103cd61086e366004614a71565b611661565b6103cd6108813660046148d5565b6116b1565b6106eb61177d565b61038a61089c3660046147d2565b611798565b6103cd6108af3660046147fc565b611823565b6104c56108c2366004614aa4565b611a8d565b6106eb611def565b6103cd611dfa565b6104c56108e53660046149ae565b611e10565b6103cd6108f83660046147fc565b60046020526000908152604090205481565b6103cd610918366004614ac6565b611fca565b610687604080516080810182526000808252602082018190529181018290526060810191909152506040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925273010000000000000000000000000000000000000090910461ffff16606082015290565b6106226109c03660046147fc565b612443565b6103cd6124ac565b6103cd6109db366004614b2c565b6124c3565b6103cd6109ee3660046147fc565b600a6020526000908152604090205481565b6104c5610a0e366004614b5f565b61254e565b61038a610a213660046147fc565b60026020526000908152604090205460ff1681565b61038a610a443660046147fc565b60016020526000908152604090205460ff1681565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f73594c41593a3a617070726f76653a2050726f6869626974656420416374696f60448201527f6e0000000000000000000000000000000000000000000000000000000000000060648201526000906084015b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166000908152600c60209081526040808320805482518185028101850190935280835260609493830182828015610b7d57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411610b445790505b50505050509050805167ffffffffffffffff811115610b9e57610b9e614b9f565b604051908082528060200260200182016040528015610c0e57816020015b6040805160808101825260008082526020808301829052928201819052606082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610bbc5790505b50915060005b8151811015610d1e5773ffffffffffffffffffffffffffffffffffffffff84166000908152600b602052604081208351909190849084908110610c5957610c59614bce565b60209081029190910181015161ffff1682528181019290925260409081016000208151608081018352905465ffffffffffff8116825266ffffffffffffff66010000000000008204169382019390935267ffffffffffffffff6d0100000000000000000000000000840481169282019290925275010000000000000000000000000000000000000000009092041660608201528351849083908110610d0057610d00614bce565b60200260200101819052508080610d1690614c2c565b915050610c14565b5050919050565b600080610d3183612b94565b509050610d3d81612ddd565b9392505050565b600080610d4f612e1a565b509050610d5d600954612ef6565b610d6682612ddd565b600354610d739190614c64565b610d7d9190614c64565b91505090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f73594c41593a3a7472616e7366657246726f6d3a2050726f686962697465642060448201527f416374696f6e00000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b610e16612f08565b610e1e612fa7565b610e27816130d6565b50565b610e32612f08565b610e3a612fa7565b81610e44816130d6565b6000610e4f83613293565b9050610e5b84826132a5565b8373ffffffffffffffffffffffffffffffffffffffff167fe24fb5918dfdd34ee115de98f0d2960d0ce30d6169a74367fd256ff3b5048b7484604051610ea391815260200190565b60405180910390a250505050565b610eb9613629565b8060036000828254610ecb9190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081208054839290610f05908490614c64565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe906020015b60405180910390a25050565b6060806000610f6884612b94565b509050610f74816136c8565b156110bf5760608101516000610f89836136e2565b90508067ffffffffffffffff811115610fa457610fa4614b9f565b604051908082528060200260200182016040528015610fe957816020015b6040805180820190915260008082526020820152815260200190600190039081610fc25790505b5093508067ffffffffffffffff81111561100557611005614b9f565b60405190808252806020026020018201604052801561104a57816020015b60408051808201909152600080825260208201528152602001906001900390816110235790505b50945060005b84518110156110bb576110638784613755565b85828151811061107557611075614bce565b60200260200101819052508286828151811061109357611093614bce565b60200260200101819052506110a783613895565b9250806110b381614c2c565b915050611050565b5050505b50915091565b6110cd61390c565b611159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604260248201527f73594c41593a3a7365744772616475616c4d696e7465723a206772616475616c60448201527f206d696e7465722063616e6e6f7420626520746865207a65726f20616464726560648201527f7373000000000000000000000000000000000000000000000000000000000000608482015260a401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527fd066a75103af5bd5a100de58375e7cf390671150ac63a9f845137e25042bf1589101610f4e565b6112fb6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b5073ffffffffffffffffffffffffffffffffffffffff16600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285015266ffffffffffffff6c01000000000000000000000000909104168185015283518085018552600183015461ffff808216835260ff6201000092839004811684880152606085019390935286518088019097526002850154808216885291909104909116938501939093526080810193909352600301541660a082015290565b6113d660d062093a80614c7c565b81565b6000806113e583612b94565b5073ffffffffffffffffffffffffffffffffffffffff84166000908152600a602052604090205490915061141890612ef6565b61142182612ddd565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260409020546114519190614c64565b610d3d9190614c64565b611463612f08565b61146b612fa7565b565b600061147c62093a8083614c7c565b6000546114899190614c64565b92915050565b6040805160808101825260008082526020820181905291810182905260608101829052906114bb612e1a565b5092915050565b600c60205281600052604060002081815481106114de57600080fd5b9060005260206000209060109182820401919006600202915091509054906101000a900461ffff1681565b611511613629565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260409020548111156115c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a6275726e3a205573657220696e7374616e7420706f776572206260448201527f616c616e636520746f6f206c6f770000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260046020526040812080548392906115fb908490614cb9565b9250508190555080600360008282546116149190614cb9565b909155505060405181815273ffffffffffffffffffffffffffffffffffffffff8316907f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df790602001610f4e565b600061166b612f08565b600061167684613293565b9050611697858265ffffffffffff1661168d611def565b61ffff16866139bd565b6116a88165ffffffffffff16612ef6565b95945050505050565b6000805482101561176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604c60248201527f73594c41593a3a6765745472616e636865496e6465783a2054696d65206d757360448201527f74206265206d6f7265206f7220657175616c20746f207468652066697273742060648201527f7472616e6368652074696d650000000000000000000000000000000000000000608482015260a401610ae0565b61177382613dd1565b61ffff1692915050565b60006001611789611def565b6117939190614cd0565b905090565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f73594c41593a3a7472616e736665723a2050726f68696269746564204163746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b600061182d612f08565b6000611837611def565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600c60205260408120805461ffff93909316935091905b81811015611a7857600083828154811061188657611886614bce565b6000918252602080832060108304015473ffffffffffffffffffffffffffffffffffffffff8b168452600b82526040808520600f9094166002026101000a90910461ffff16808552928252928390208351608081018552905465ffffffffffff811682526601000000000000810466ffffffffffffff16928201929092526d0100000000000000000000000000820467ffffffffffffffff908116948201949094527501000000000000000000000000000000000000000000909104909216606083015291506119568682613dfa565b15611a635761196a81898461ffff16613e24565b6119749088614c64565b965084611982600186614cb9565b8154811061199257611992614bce565b90600052602060002090601091828204019190066002029054906101000a900461ffff168584815481106119c8576119c8614bce565b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff16021790555084805480611a0757611a07614cf3565b60008281526020902060107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90920191820401805461ffff6002600f8516026101000a0219169055905583611a5b81614d22565b945050611a71565b82611a6d81614c2c565b9350505b505061186a565b50611a8284612ef6565b93505050505b919050565b336000908152600b602090815260408083208584529091529020805465ffffffffffff16611b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204e6f206c6f636b757060448201527f20706f736974696f6e20666f756e6400000000000000000000000000000000006064820152608401610ae0565b80547501000000000000000000000000000000000000000000900467ffffffffffffffff168211611bf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020646560448201527f61646c696e652073686f756c6420626520696e207468652066757475726500006064820152608401610ae0565b60d0611bfc8484614cb9565b1115611c8a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603f60248201527f73594c41593a3a636f6e74696e75654c6f636b75703a204c6f636b757020706560448201527f72696f642065786365656473206120746f74616c206f662034207965617273006064820152608401610ae0565b805460009060d090611cbf907501000000000000000000000000000000000000000000900467ffffffffffffffff1685614cb9565b8354611cd3919065ffffffffffff16614c7c565b611cdd9190614d86565b90508060096000828254611cf19190614c64565b9091555050336000908152600a602052604081208054839290611d15908490614c64565b9091555050815481908390600690611d419084906601000000000000900466ffffffffffffff16614d9a565b82546101009290920a66ffffffffffffff8181021990931691909216919091021790555081547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff16750100000000000000000000000000000000000000000067ffffffffffffffff851602178255604080518581526020810183905290810184905233907ff105efae42c9c08d5eafed7135b77068bb81a1845393b4473ae79e86c94e97f190606001610ea3565b600061179342613dd1565b6000611793611e07611def565b61ffff1661146d565b611e1861390c565b611ea4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f59656c61794f776e61626c653a3a6f6e6c794f776e65723a2043616c6c65722060448201527f6973206e6f74207468652059656c6179206f776e6572000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff8216611f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f73594c41593a3a7365744d696e7465723a206d696e7465722063616e6e6f742060448201527f626520746865207a65726f2061646472657373000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f583b0aa0e528532caf4b907c11d7a8158a122fe2a6fb80cd9b09776ebea8d92d9101610f4e565b6000611fd4612f08565b611fdc612fa7565b83611fe6816130d6565b600061200086611ffb36889003880188614dc5565b613f49565b805490915060009061201f906601000000000000900461ffff16613fd0565b825490915065ffffffffffff16806120b9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f616c7265616479206c6f636b65640000000000000000000000000000000000006064820152608401610ae0565b60006120c3614050565b905061ffff811615806120e75750835461ffff808316660100000000000090920416115b612173576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f73594c41593a3a6d696772617465546f4c6f636b75703a205472616e6368652060448201527f6d617475726564000000000000000000000000000000000000000000000000006064820152608401610ae0565b83546000906601000000000000900461ffff1661218e611def565b6121989190614cd0565b6121a69061ffff1684614e58565b73ffffffffffffffffffffffffffffffffffffffff8b166000908152600760205260409020805465ffffffffffff928316935085926006916121f49185916601000000000000900416614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555082600560000160068282829054906101000a900465ffffffffffff1661223c9190614e86565b825465ffffffffffff9182166101009390930a92830291909202199091161790555073ffffffffffffffffffffffffffffffffffffffff8a1660009081526007602052604090208054829190600c906122b090849066ffffffffffffff6c0100000000000000000000000090910416614ea5565b92506101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550806005600001600c8282829054906101000a900466ffffffffffffff166122fb9190614ea5565b825466ffffffffffffff9182166101009390930a92830291909202199091161790555084547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016855583548390859060009061236090849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055506123ac8a8465ffffffffffff168760000160069054906101000a900461ffff1661ffff168b6139bd565b84546040805165ffffffffffff86168152660100000000000090920461ffff16602083015266ffffffffffffff83169082015273ffffffffffffffffffffffffffffffffffffffff8b16907ff6028e08bd4265711d36773ee2b3ab6b15824a3938c53ce8022919564a1b8d049060600160405180910390a26124358365ffffffffffff16612ef6565b9a9950505050505050505050565b6124996040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b60006124a483612b94565b509392505050565b6000806124b7612e1a565b509050610d7d81612ddd565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a616c6c6f77616e63653a2050726f686962697465642041637460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152600090608401610ae0565b612556612f08565b61255e612fa7565b82612568816130d6565b73ffffffffffffffffffffffffffffffffffffffff84166000908152600760209081526040808320815160c081018352815465ffffffffffff80821683526601000000000000808304821684880190815266ffffffffffffff6c010000000000000000000000009485900481168689015287518089018952600188015461ffff808216835260ff62010000928390048116848e01526060808b01949094528b51808d018d5260028c015480841682529390930416828d01526080808a0192909252600390990154891660a089015289519081018a526005548087168252948504909516998501999099529382049093169582019590955273010000000000000000000000000000000000000090940490921693830193909352518251929391926126929190614ec5565b835190915065ffffffffffff16156126b7576126b2828460000151614079565b600083525b602083015165ffffffffffff16156126df576126d78284602001516140b5565b600060208401525b604083015166ffffffffffffff1615612708576127008284604001516140ee565b600060408401525b612711836136c8565b156128915760608301515160808401515161ffff9182169116815b81811161288d5773ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452825291829020825160c081018452815465ffffffffffff8082166080840190815261ffff660100000000000093849004811660a0860152908452865180880188526001860154808416825284900482168188015284870152865180880188526002860154808416825284900482168188015284880152865180880190975260039094015490811686520490911691830191909152606081019190915261280390614139565b73ffffffffffffffffffffffffffffffffffffffff8a166000908152600860209081526040808320848452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000908116825560018201805482169055600282018054821690556003909101805490911690558061288581614c2c565b91505061272c565b5050505b6040518060400160405280600061ffff168152602001600060ff16815250836060018190525082600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160010160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060808201518160020160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548160ff021916908360ff160217905550505060a08201518160030160006101000a81548161ffff021916908361ffff16021790555090505081600560008201518160000160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060208201518160000160066101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001600c6101000a81548166ffffffffffffff021916908366ffffffffffffff16021790555060608201518160000160136101000a81548161ffff021916908361ffff1602179055509050508673ffffffffffffffffffffffffffffffffffffffff167f828d875bb1fd38ee261c0c069e9bc63df13bf8e7e59acc2385ea66b86c8351378787604051612b3d9291909182521515602082015260400190565b60405180910390a284612b8b576000612b558761416b565b90508065ffffffffffff168265ffffffffffff161115612b89576000612b7b8284614e86565b9050612b8789826132a5565b505b505b50505050505050565b612bea6040805160c0810182526000808252602080830182905282840182905283518085018552828152808201839052606084015283518085019094528184528301529060808201908152600060209091015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600760209081526040808320815160c081018352815465ffffffffffff808216835266010000000000008204168286015266ffffffffffffff6c01000000000000000000000000909104168184015282518084018452600183015461ffff808216835260ff62010000928390048116848901526060850193909352855180870190965260028501548082168752919091049091169484019490945260808101929092526003015490911660a082015281612cbe61177d565b90508061ffff168260a0015161ffff1603612cde57509360009350915050565b612ce7826136c8565b15612dca576000612cf6614050565b905061ffff811615612d5c576000612d12878560600151613755565b90505b612d1e846136c8565b8015612d3657508161ffff16816020015161ffff1611155b15612d5a57612d45848261419a565b612d53878560600151613755565b9050612d15565b505b612d6a838361ffff1661425a565b15612dc85760008360a0015183612d819190614cd0565b61ffff16905080846020015165ffffffffffff16612d9f9190614ee6565b84604001818151612db09190614d9a565b66ffffffffffffff169052505061ffff821660a08401525b505b61ffff1660a08201529360019350915050565b6000612dfd612df8836040015166ffffffffffffff16612ef6565b614277565b8251612e109065ffffffffffff16612ef6565b6114899190614c64565b60408051608081018252600080825260208201819052918101829052606081018290529080612e4761177d565b6040805160808101825260055465ffffffffffff8082168352660100000000000082041660208301526c01000000000000000000000000810466ffffffffffffff169282019290925261ffff7301000000000000000000000000000000000000009092048216606082015294501690505b80836060015161ffff161015612ef15760608301805190612ed882614f0c565b61ffff16905250612ee883614284565b60019150612eb8565b509091565b60006114896509184e72a00083614c7c565b3360009081526002602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f73594c41593a3a5f6f6e6c794772616475616c4d696e7465723a20496e73756660448201527f66696369656e742050726976696c6567657300000000000000000000000000006064820152608401610ae0565b600080612fb2612e1a565b9150915080156130d2578151600580546020808601516040808801516060808a015165ffffffffffff9889167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009097168717660100000000000099909516988902949094177fffffffffffffffffffffff000000000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9093169283027fffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff161773010000000000000000000000000000000000000061ffff90951694850217909655815194855292840195909552938201527fb968421445b12044d4cf86ecc7f3f9589111c9efab4b7561360aea60f3e832eb9101610f4e565b5050565b6000806130e283612b94565b91509150801561328e5773ffffffffffffffffffffffffffffffffffffffff831660008181526007602090815260409182902085518154878401518886015165ffffffffffff9384167fffffffffffffffffffffffffffffffffffffffff0000000000000000000000009093168317660100000000000094909216938402919091177fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff166c0100000000000000000000000066ffffffffffffff9092169182021784556060808a015180516001870180549289015161ffff9283167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000948516176201000060ff92831681029190911790925560808e0151805160028b018054928d0151918616929096169190911791169091021790915560a08b0151600390960180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000169690911695861790558651928352948201929092529384015292917febc99566369f3a0bb7856de228673359eed87e744e506850f424863304607709910160405180910390a35b505050565b60006114896509184e72a00083614d86565b8065ffffffffffff166000036132b9575050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260076020908152604091829020825160c081018452815465ffffffffffff808216835266010000000000008204168285019081526c0100000000000000000000000090910466ffffffffffffff168286015284518086018652600184015461ffff8082168352620100009182900460ff9081168489015260608601939093528751808901909852600286015480821689529190910490911694860194909452608082019490945260039091015490911660a082015281519091839161339b908390614ec5565b65ffffffffffff9081169091526005805485935090916006916133ca9185916601000000000000900416614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff16021790555060006133fc848360800151613755565b90506000613408611def565b90506000613415846136c8565b159050808061342f57508161ffff16836020015161ffff16105b1561347e5760006134438560800151613895565b9050811561345357606085018190525b60808501526040805180820190915265ffffffffffff8616815261ffff83166020820152925061349c565b84836000018181516134909190614ec5565b65ffffffffffff169052505b6134ae836020015161ffff1686614344565b6134bd86856080015185614395565b50505073ffffffffffffffffffffffffffffffffffffffff90921660009081526007602090815260409182902084518154838701519487015166ffffffffffffff166c01000000000000000000000000027fffffffffffffffffffffffffff00000000000000ffffffffffffffffffffffff65ffffffffffff9687166601000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090931696909316959095171716929092178255606084015180516001840180549284015160ff908116620100009081027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000095861661ffff958616171790925560808801518051600288018054929097015190921690920291909316928216929092179190911790915560a09093015160039091018054919093167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000919091161790915550565b3360009081526001602052604090205460ff1661146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f73594c41593a3a5f6f6e6c794d696e7465723a20496e73756666696369656e7460448201527f2050726976696c656765730000000000000000000000000000000000000000006064820152608401610ae0565b60608101515160009061ffff1615611a8857506001919050565b6060810151608082015160208201518251600093929160ff1690613707906004614f2d565b6137119190614f4e565b816020015160ff168260000151600461372a9190614f2d565b6137349190614f4e565b61373e9190614cd0565b613749906001614f4e565b61ffff16949350505050565b6040805180820182526000808252602080830182905273ffffffffffffffffffffffffffffffffffffffff8616825260088152838220855161ffff16835281529281209284015191929160ff1690036137d95760408051808201909152815465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660010361381c5760408051808201909152600182015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b826020015160ff1660020361385f5760408051808201909152600282015465ffffffffffff811682526601000000000000900461ffff16602082015291506114bb565b60408051808201909152600382015465ffffffffffff811682526601000000000000900461ffff16602082015291505092915050565b6040805180820190915260008082526020820152815161ffff166000036138bf5760018152919050565b6003826020015160ff1610156138f457815161ffff16815260208201516138e7906001614f6b565b60ff166020820152919050565b8151613901906001614f4e565b61ffff168152919050565b6040517f83c603e30000000000000000000000000000000000000000000000000000000081523360048201526000907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906383c603e390602401602060405180830381865afa158015613999573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117939190614f90565b60006139c98383614cb9565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600b60209081526040808320878452909152902080549192509065ffffffffffff1615613aea5780547501000000000000000000000000000000000000000000900467ffffffffffffffff168314613ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152604960248201527f73594c41593a3a6d696e744c6f636b75703a204c6f636b757020706f7369746960448201527f6f6e20616c726561647920657869737473207769746820646966666572656e7460648201527f20646561646c696e650000000000000000000000000000000000000000000000608482015260a401610ae0565b613bed565b613af2611def565b61ffff1683118015613b05575060d08211155b613b91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f73594c41593a3a6d696e744c6f636b75703a20496e76616c696420646561646c60448201527f696e6500000000000000000000000000000000000000000000000000000000006064820152608401610ae0565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600c6020908152604082208054600181018255908352912060108204018054600f9092166002026101000a61ffff81810219909316928716029190911790555b600060d0613bfb8488614c7c565b613c059190614d86565b90508060096000828254613c199190614c64565b909155505073ffffffffffffffffffffffffffffffffffffffff87166000908152600a602052604081208054839290613c53908490614c64565b9091555050815486908390600090613c7490849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550808260000160068282829054906101000a900466ffffffffffffff16613cbc9190614d9a565b825466ffffffffffffff9182166101009390930a928302919092021990911617905550815467ffffffffffffffff8581167501000000000000000000000000000000000000000000027fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff9188166d010000000000000000000000000002919091167fffffff00000000000000000000000000000000ffffffffffffffffffffffffff9092169190911717825560408051878152602081018390529081018690526060810185905273ffffffffffffffffffffffffffffffffffffffff8816907f8d57bc413d172db24c650affb289486236f8cf804335bc881bb5033401acd5da9060800160405180910390a250505050505050565b600062093a8060005483613de59190614cb9565b613def9190614d86565b611489906001614c64565b805160009065ffffffffffff1615801590610d3d5750506060015167ffffffffffffffff16111590565b6000836020015166ffffffffffffff1660096000828254613e459190614cb9565b909155505060208085015173ffffffffffffffffffffffffffffffffffffffff85166000908152600a90925260408220805466ffffffffffffff909216929091613e90908490614cb9565b9091555050835160405183815265ffffffffffff909116915073ffffffffffffffffffffffffffffffffffffffff8416907fdebd6c689e64ba7da4f3606a398615e9e8df6a117b5fb6fe720db13a3cd34f5a9060200160405180910390a273ffffffffffffffffffffffffffffffffffffffff9092166000908152600b602090815260408083209383529290522080547fffffff0000000000000000000000000000000000000000000000000000000000169055919050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600860209081526040808320845161ffff168452825282209083015160ff168203613f92579050806114bb565b826020015160ff16600103613fac578060010191506114bb565b826020015160ff16600203613fc6578060020191506114bb565b6003019392505050565b600080613fde600584614d86565b6000818152600660205260408120919250613ffa600586614fad565b90508060000361400c57509392505050565b8060010361401f57506001019392505050565b8060020361403257506002019392505050565b8060030361404557506003019392505050565b506004019392505050565b60008061405b611def565b61ffff16905060d081111561407557610d7d60d082614cb9565b5090565b815165ffffffffffff80831691161015614094575060009052565b80826000018181516140a69190614e86565b65ffffffffffff169052505050565b8065ffffffffffff16826020015165ffffffffffff1610156140dc57600060208301525050565b80826020018181516140a69190614e86565b8066ffffffffffffff16826040015166ffffffffffffff16101561411757600060408301525050565b80826040018181516141299190614ea5565b66ffffffffffffff169052505050565b80516141449061454f565b614151816020015161454f565b61415e816040015161454f565b610e27816060015161454f565b600061417682613293565b90508161418a8265ffffffffffff16612ef6565b1015611a885780610d3d81614fc1565b60006141ad826020015161ffff166146a1565b825160a0850151919250906000906141c59084614cd0565b61ffff16905080856020015165ffffffffffff166141e39190614ee6565b856040018181516141f49190614d9a565b66ffffffffffffff16905250600061420b836146ba565b905061421786826140ee565b82866000018181516142299190614ec5565b65ffffffffffff1690525061423e86846140b5565b614247866146cf565b50505061ffff1660a09092019190915250565b6000818360a0015161ffff16108015610d3d5750610d3d836136c8565b600061148960d083614d86565b806020015165ffffffffffff16816040018181516142a29190614d9a565b66ffffffffffffff16905250606081015160d061ffff90911610610e2757600060d0826060015161ffff166142d79190614cb9565b6142e2906001614c64565b905060006142ef82613fd0565b5465ffffffffffff169050801561328e57600061430b826146ba565b905061431784826140ee565b61432184836140b5565b81846000018181516143339190614ec5565b65ffffffffffff1690525050505050565b600061434f83613fd0565b80549091508290829060009061436e90849065ffffffffffff16614ec5565b92506101000a81548165ffffffffffff021916908365ffffffffffff160217905550505050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600860209081526040808320855161ffff1684528252822090840151909160ff909116900361442a5781518154602084015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90921691909117178155614549565b826020015160ff16600103614490578151600182018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b826020015160ff166002036144f6578151600282018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff90931692909217919091179055614549565b8151600382018054602085015161ffff166601000000000000027fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911665ffffffffffff909316929092179190911790555b50505050565b805165ffffffffffff1615610e27576000614571826020015161ffff16613fd0565b8251815491925065ffffffffffff9081169116106145cb578151815482906000906145a590849065ffffffffffff16614e86565b92506101000a81548165ffffffffffff021916908365ffffffffffff1602179055505050565b805482516145e19165ffffffffffff1690614e86565b65ffffffffffff166001036146195780547fffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000016905550565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f73594c41593a3a5f72656d6f7665557365725472616e63686546726f6d476c6f60448201527f62616c3a205472616e63686520707265636973696f6e000000000000000000006064820152608401610ae0565b600060016146b060d084614c64565b6114899190614cb9565b600061148960d065ffffffffffff8416614c7c565b60808101515160608201515161ffff9081169116148015614705575080608001516020015160ff1681606001516020015160ff16145b15614726576040805180820190915260008082526020820152606082015250565b6147338160600151613895565b606082015250565b600060208083528351808285015260005b818110156147685785810183015185820160400152820161474c565b8181111561477a576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611a8857600080fd5b600080604083850312156147e557600080fd5b6147ee836147ae565b946020939093013593505050565b60006020828403121561480e57600080fd5b610d3d826147ae565b602080825282518282018190526000919060409081850190868401855b8281101561488c578151805165ffffffffffff1685528681015166ffffffffffffff16878601528581015167ffffffffffffffff90811687870152606091820151169085015260809093019290850190600101614834565b5091979650505050505050565b6000806000606084860312156148ae57600080fd5b6148b7846147ae565b92506148c5602085016147ae565b9150604084013590509250925092565b6000602082840312156148e757600080fd5b5035919050565b60408082528351828201819052600091906020906060850190828801855b8281101561494057614930848351805161ffff16825260209081015160ff16910152565b928501929084019060010161490c565b5050508481038286015285518082528683019183019060005b8181101561499257614982838551805165ffffffffffff16825260209081015161ffff16910152565b9284019291850191600101614959565b509098975050505050505050565b8015158114610e2757600080fd5b600080604083850312156149c157600080fd5b6149ca836147ae565b915060208301356149da816149a0565b809150509250929050565b60006101008201905065ffffffffffff8084511683528060208501511660208401525066ffffffffffffff60408401511660408301526060830151614a3e6060840182805161ffff16825260209081015160ff16910152565b506080830151805161ffff1660a0840152602081015160ff1660c08401525061ffff60a08401511660e083015292915050565b600080600060608486031215614a8657600080fd5b614a8f846147ae565b95602085013595506040909401359392505050565b60008060408385031215614ab757600080fd5b50508035926020909101359150565b60008060008385036080811215614adc57600080fd5b614ae5856147ae565b935060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215614b1757600080fd5b50602084019150606084013590509250925092565b60008060408385031215614b3f57600080fd5b614b48836147ae565b9150614b56602084016147ae565b90509250929050565b600080600060608486031215614b7457600080fd5b614b7d846147ae565b9250602084013591506040840135614b94816149a0565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614c5d57614c5d614bfd565b5060010190565b60008219821115614c7757614c77614bfd565b500190565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614cb457614cb4614bfd565b500290565b600082821015614ccb57614ccb614bfd565b500390565b600061ffff83811690831681811015614ceb57614ceb614bfd565b039392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081614d3157614d31614bfd565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614d9557614d95614d57565b500490565b600066ffffffffffffff808316818516808303821115614dbc57614dbc614bfd565b01949350505050565b600060408284031215614dd757600080fd5b6040516040810181811067ffffffffffffffff82111715614e21577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052823561ffff81168114614e3657600080fd5b8152602083013560ff81168114614e4c57600080fd5b60208201529392505050565b600065ffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b02949350505050565b600065ffffffffffff83811690831681811015614ceb57614ceb614bfd565b600066ffffffffffffff83811690831681811015614ceb57614ceb614bfd565b600065ffffffffffff808316818516808303821115614dbc57614dbc614bfd565b600066ffffffffffffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818103614f2357614f23614bfd565b6001019392505050565b600061ffff80831681851681830481118215151615614e7d57614e7d614bfd565b600061ffff808316818516808303821115614dbc57614dbc614bfd565b600060ff821660ff84168060ff03821115614f8857614f88614bfd565b019392505050565b600060208284031215614fa257600080fd5b8151610d3d816149a0565b600082614fbc57614fbc614d57565b500690565b600065ffffffffffff808316818103614f2357614f23614bfd56fea2646970667358221220812ee2a1ce818f8d37a4dd005c691802e51902640e24b614c40a0885704ddb3064736f6c634300080d0033000000000000000000000000ab865d95a574511a6c893c38a4d892275ca70570", + "nonce": "0x10a", "chainId": "0x1" }, "additionalContracts": [], @@ -48,41 +48,41 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x5d9418", + "cumulativeGasUsed": "0x1a2edee", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x0", - "transactionHash": "0x467e5bcc80a5dec9ef99fd3fb05a768f3862505690d648d8695944371a08f07e", - "transactionIndex": "0xa", - "blockHash": "0x775276fc315bcbdd3850a59178a1f4952eeb3bd6234660e8c565cb0c08c1eac0", - "blockNumber": "0x164e6c4", + "transactionHash": "0xbba4313eb3f82acea7e2272562da16cf3d9925bad0a66fef8cd6b6b9a66efdfc", + "transactionIndex": "0x116", + "blockHash": "0xe632f1b08254fff6bab7a24820800f2b2bff0c2981f7749d08b012c8ddfd3b7a", + "blockNumber": "0x164fed4", "gasUsed": "0x4209da", - "effectiveGasPrice": "0x11617e70d", + "effectiveGasPrice": "0x12c1561c", "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", "to": null, - "contractAddress": "0x15eff5cdeb0b3b26f633ba523fdb2bb9d862d74e" + "contractAddress": "0x15ff5cbc5f1f37279f60509f8e5532c79ccf5318" }, { "status": "0x1", - "cumulativeGasUsed": "0x147c0d9", + "cumulativeGasUsed": "0xd1a523", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x0", - "transactionHash": "0xc0328652092a23da6081f4ba49c5750502b74108b19d01d2a7cb7d29df54f42d", - "transactionIndex": "0xf8", - "blockHash": "0x038aa03eb5d3127ec497c606a22c841ae779f227760266f4503ec194e0f3b9b4", - "blockNumber": "0x164e6c6", - "gasUsed": "0x441bbb", - "effectiveGasPrice": "0x11617e70d", + "transactionHash": "0x509ea6c6b866ef6c1ea4fb018e2ba882fa5d6ff54cd040c1bd428d7b71c938ad", + "transactionIndex": "0x3c", + "blockHash": "0x5c4427e4b5e2cbde2d181f7458a9cdf55002e9aae92a0ed9d744f84cdfc60825", + "blockNumber": "0x164fed5", + "gasUsed": "0x441baf", + "effectiveGasPrice": "0x12c1561c", "from": "0x1892e547f4e1ba76f82a09c16c9f774744de1ff3", "to": null, - "contractAddress": "0x3d79fbbf918327968e75dd0f5b1d25ac65c8dfa2" + "contractAddress": "0x276a0f45051dc2530e8b7354df3fd31673c6e8bd" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1758197678017, + "timestamp": 1758272005103, "chain": 1, - "commit": "823e888" + "commit": "6ac9b26" } \ No newline at end of file diff --git a/deployment/mainnet.json b/deployment/mainnet.json index 18cd9e4..8e215cc 100644 --- a/deployment/mainnet.json +++ b/deployment/mainnet.json @@ -20,11 +20,11 @@ "proxy": "0x3E246beb1A0daF94FB376C44cAc2D1C8B979C0d0" }, "YelayStaking": { - "implementation": "0x15Eff5cDEb0b3B26f633Ba523Fdb2bb9d862D74E", + "implementation": "0x15fF5CBC5F1f37279F60509f8e5532C79ccF5318", "proxy": "0x8e933387AFc6F0F67588e5Dac33EBa97eF988C69" }, "sYLAY": { - "implementation": "0x3D79fBbF918327968e75dD0F5b1D25ac65c8dfA2", + "implementation": "0x276a0f45051dC2530E8B7354df3fD31673C6e8Bd", "proxy": "0xC0F7B477e05B29097546dAae2E3dF2decBeB405d" }, "sYLAYRewards": { diff --git a/src/interfaces/IsYLAY.sol b/src/interfaces/IsYLAY.sol index 8c49243..146b4b6 100644 --- a/src/interfaces/IsYLAY.sol +++ b/src/interfaces/IsYLAY.sol @@ -24,6 +24,4 @@ interface IsYLAY is IsYLAYBase { event LockupBurned(address indexed to, uint256 lockTranche); event LockupContinued(address indexed to, uint256 lockTranche, uint256 addedPower, uint256 endTranche); - - event UserTransferred(address indexed from, address indexed to); } diff --git a/src/sYLAY.sol b/src/sYLAY.sol index d8a2ec3..d276b6e 100644 --- a/src/sYLAY.sol +++ b/src/sYLAY.sol @@ -1272,17 +1272,6 @@ contract sYLAY is YelayOwnable, IsYLAY, IERC20MetadataUpgradeable { } } - /** - * @notice check if user exists in the system. - * - * @param account user address to check - * @return userExists true if user exists - */ - function _userExists(address account) internal view returns (bool) { - return _userGraduals[account].lastUpdatedTrancheIndex != 0 || userLockupPower[account] != 0 - || userInstantPower[account] != 0; - } - /* ---------- GRADUAL POWER: HELPER FUNCTIONS ---------- */ /**