From f0705d146b2b7551ab0f4ab653b7af31acccd8c0 Mon Sep 17 00:00:00 2001 From: Tudor Malene Date: Fri, 6 Dec 2024 20:01:27 +0200 Subject: [PATCH] fix --- contracts/generated/SystemDeployer/SystemDeployer.go | 2 +- .../TransactionPostProcessor/TransactionPostProcessor.go | 2 +- contracts/src/system/TransactionPostProcessor.sol | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/generated/SystemDeployer/SystemDeployer.go b/contracts/generated/SystemDeployer/SystemDeployer.go index fcffdeafe9..08ee7c699b 100644 --- a/contracts/generated/SystemDeployer/SystemDeployer.go +++ b/contracts/generated/SystemDeployer/SystemDeployer.go @@ -32,7 +32,7 @@ var ( // SystemDeployerMetaData contains all meta data concerning the SystemDeployer contract. var SystemDeployerMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"eoaAdmin\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"}],\"name\":\"SystemContractDeployed\",\"type\":\"event\"}]", - Bin: "0x608060405234801561001057600080fd5b50604051615ca7380380615ca783398101604081905261002f916103e7565b61003881610060565b6000610044828261011d565b905061005082826101e2565b610059826102a2565b50506105c4565b600060405161006e90610373565b604051809103906000f08015801561008a573d6000803e3d6000fd5b509050600063c4d66de860e01b836040516024016100a8919061041c565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006100f083858461032f60201b60201c565b9050600080516020615c878339815191528160405161010f919061045e565b60405180910390a150505050565b60008060405161012c90610380565b604051809103906000f080158015610148573d6000803e3d6000fd5b509050600063da35a26f60e01b8486604051602401610168929190610483565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006101b083878461032f60201b60201c565b9050600080516020615c87833981519152816040516101cf91906104b7565b60405180910390a1925050505b92915050565b60006040516101f09061038d565b604051809103906000f08015801561020c573d6000803e3d6000fd5b509050600063485cc95560e01b848460405160240161022c9291906104c7565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600061027483868461032f60201b60201c565b9050600080516020615c878339815191528160405161029391906104f4565b60405180910390a15050505050565b60006040516102b09061039a565b604051809103906000f0801580156102cc573d6000803e3d6000fd5b506040805160048152602481019091526020810180516001600160e01b0390811663204a7f0760e21b17909152919250906000906103109084908690859061032f16565b9050600080516020615c878339815191528160405161010f9190610528565b600080848484604051610341906103a7565b61034d9392919061058e565b604051809103906000f080158015610369573d6000803e3d6000fd5b5095945050505050565b610e368061061183390190565b6107c68061144783390190565b611d0080611c0d83390190565b6110f08061390d83390190565b61128a806149fd83390190565b60006001600160a01b0382166101dc565b6103ce816103b4565b81146103d957600080fd5b50565b80516101dc816103c5565b6000602082840312156103fc576103fc600080fd5b61040683836103dc565b9392505050565b610416816103b4565b82525050565b602081016101dc828461040d565b60198152602081017f5472616e73616374696f6e73506f737450726f636573736f7200000000000000815290505b60200190565b6040808252810161046e8161042a565b90506101dc602083018461040d565b80610416565b60408101610491828561047d565b610406602083018461040d565b6004815260208101634665657360e01b81529050610458565b6040808252810161046e8161049e565b60408101610491828561040d565b600a815260208101694d65737361676542757360b01b81529050610458565b6040808252810161046e816104d5565b600f8152602081016e5075626c696343616c6c6261636b7360881b81529050610458565b6040808252810161046e81610504565b60005b8381101561055357818101518382015260200161053b565b50506000910152565b6000610566825190565b80845260208401935061057d818560208601610538565b601f01601f19169290920192915050565b6060810161059c828661040d565b6105a9602083018561040d565b81810360408301526105bb818461055c565b95945050505050565b603f806105d26000396000f3fe6080604052600080fdfea2646970667358221220d6d4d7132e8631956841e9da61cd856e5aaa08ec2049993d13224b35601df7d064736f6c634300081c00336080604052348015600f57600080fd5b50610e178061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc366004610835565b610265565b6040516100ee9190610865565b60405180910390f35b61011a610105366004610884565b60009081526020819052604090206001015490565b6040516100ee91906108a9565b61013a6101353660046108dc565b6102fe565b005b61013a61014a3660046108dc565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a610184366004610966565b61037a565b6100e16101973660046108dc565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d63660046109ae565b6104ca565b61013a6101e93660046108dc565b61063a565b61013a6101fc3660046109ae565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000828152602081905260409020600101546103198161065f565b610323838361066c565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103758282610716565b505050565b60006103876001306109e3565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a3a565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a7c565b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece419061040b9084906108a9565b60405180910390a160005b6001548110156103235760006001828154811061043557610435610a8c565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af9061048c9088908890600401610d83565b600060405180830381600087803b1580156104a657600080fd5b505af11580156104ba573d6000803e3d6000fd5b5050505050806001019050610416565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105155750825b905060008267ffffffffffffffff1660011480156105325750303b155b905081158015610540575080155b15610577576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105ab57845468ff00000000000000001916680100000000000000001785555b6105b660008761066c565b506105e17ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a5988761066c565b50831561063257845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061062990600190610db8565b60405180910390a15b505050505050565b6000828152602081905260409020600101546106558161065f565b6103238383610716565b6106698133610799565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1661070e576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556106c63390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff161561070e576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107f75780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610dc6565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461066957600080fd5b80356102f8816107fb565b60006020828403121561084a5761084a600080fd5b610854838361082a565b9392505050565b8015155b82525050565b602081016102f8828461085b565b8061081f565b80356102f881610873565b60006020828403121561089957610899600080fd5b6108548383610879565b8061085f565b602081016102f882846108a3565b60006001600160a01b0382166102f8565b61081f816108b7565b80356102f8816108c8565b600080604083850312156108f2576108f2600080fd5b6108fc8484610879565b915061090b84602085016108d1565b90509250929050565b60008083601f84011261092957610929600080fd5b50813567ffffffffffffffff81111561094457610944600080fd5b60208301915083602082028301111561095f5761095f600080fd5b9250929050565b6000806020838503121561097c5761097c600080fd5b823567ffffffffffffffff81111561099657610996600080fd5b6109a285828601610914565b92509250509250929050565b6000602082840312156109c3576109c3600080fd5b61085483836108d1565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f86109cd565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f881610a06565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e7665727400000000000081529050610a34565b602080825281016102f881610a4a565b634e487b7160e01b600052603260045260246000fd5b60ff811661081f565b80356102f881610aa2565b5060006102f86020830183610aab565b60ff811661085f565b5060006102f86020830183610879565b5060006102f860208301836108d1565b61085f816108b7565b6000808335601e1936859003018112610b1357610b13600080fd5b830160208101925035905067ffffffffffffffff811115610b3657610b36600080fd5b3681900382131561095f5761095f600080fd5b82818337506000910152565b818352602083019250610b69828483610b49565b50601f01601f19160190565b80151561081f565b80356102f881610b75565b5060006102f86020830183610b7d565b67ffffffffffffffff811661081f565b80356102f881610b98565b5060006102f86020830183610ba8565b67ffffffffffffffff811661085f565b60006101408301610be48380610ab6565b610bee8582610ac6565b50610bfc6020840184610acf565b610c0960208601826108a3565b50610c176040840184610acf565b610c2460408601826108a3565b50610c326060840184610acf565b610c3f60608601826108a3565b50610c4d6080840184610adf565b610c5a6080860182610aef565b50610c6860a0840184610acf565b610c7560a08601826108a3565b50610c8360c0840184610af8565b85830360c0870152610c96838284610b55565b92505050610ca760e0840184610adf565b610cb460e0860182610aef565b50610cc3610100840184610b88565b610cd161010086018261085b565b50610ce0610120840184610bb3565b610cee610120860182610bc3565b509392505050565b60006108548383610bd3565b6000823561013e1936849003018112610d1d57610d1d600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d76578484038952610d548284610d02565b610d5e8582610cf6565b94505060208201602099909901989150600101610d3d565b5091979650505050505050565b60208082528101610d95818486610d26565b949350505050565b600067ffffffffffffffff82166102f8565b61085f81610d9d565b602081016102f88284610daf565b60408101610dd48285610aef565b61085460208301846108a356fea2646970667358221220c3cf3852209ad93e14f2c95a1ee81360a00fe52f5b9883259bae9ca4c33a0aa064736f6c634300081c00336080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6106ed806100d96000396000f3fe60806040526004361061007f5760003560e01c8063afe997ea1161004e578063afe997ea1461012c578063da35a26f14610141578063f1d44d5114610161578063f2fde38b1461018157600080fd5b806323aa2a9d1461008b578063715018a6146100ad5780638da5cb5b146100c25780639003adfe1461011057600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a6366004610575565b6101a1565b005b3480156100b957600080fd5b506100ab6101ae565b3480156100ce57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031660405161010791906105bb565b60405180910390f35b34801561011c57600080fd5b50475b60405161010791906105cf565b34801561013857600080fd5b506100ab6101c2565b34801561014d57600080fd5b506100ab61015c3660046105f1565b610225565b34801561016d57600080fd5b5061011f61017c366004610575565b61036d565b34801561018d57600080fd5b506100ab61019c366004610629565b610383565b6101a96103e0565b600055565b6101b66103e0565b6101c06000610454565b565b6101ca6103e0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610222573d6000803e3d6000fd5b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156102705750825b905060008267ffffffffffffffff16600114801561028d5750303b155b90508115801561029b575080155b156102d2576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561030657845468ff00000000000000001916680100000000000000001785555b61030f866104dd565b6000879055831561036457845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061035b90600190610663565b60405180910390a15b50505050505050565b60008160005461037d91906106a0565b92915050565b61038b6103e0565b6001600160a01b0381166103d75760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016103ce91906105bb565b60405180910390fd5b61022281610454565b336104127f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146101c057336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016103ce91906105bb565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6104e56104ee565b61022281610555565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166101c0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61038b6104ee565b805b811461022257600080fd5b803561037d8161055d565b60006020828403121561058a5761058a600080fd5b610594838361056a565b9392505050565b60006001600160a01b03821661037d565b6105b58161059b565b82525050565b6020810161037d82846105ac565b806105b5565b6020810161037d82846105c9565b61055f8161059b565b803561037d816105dd565b6000806040838503121561060757610607600080fd5b610611848461056a565b915061062084602085016105e6565b90509250929050565b60006020828403121561063e5761063e600080fd5b61059483836105e6565b600067ffffffffffffffff821661037d565b6105b581610648565b6020810161037d828461065a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818102811582820484141761037d5761037d61067156fea26469706673582212203b15352e8f587de7fab730ebe897ce1d19b5fb0f5a07f4e8af1cc73861e46f5864736f6c634300081c0033608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611ba7806101596000396000f3fe6080604052600436106100cb5760003560e01c80638da5cb5b11610074578063ab53bddc1161004e578063ab53bddc146102b0578063b1454caa146102d0578063f2fde38b146102f05761013f565b80638da5cb5b1461022b5780639730886d1461027057806399a3ad21146102905761013f565b806336d2da90116100a557806336d2da90146101d6578063485cc955146101f6578063715018a6146102165761013f565b80630fcfbd111461016057806333a88c7214610196578063346633fb146101c35761013f565b3661013f576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101109033908390600401610e2b565b6000604051808303818588803b15801561012957600080fd5b505af115801561013d573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161015790610e7a565b60405180910390fd5b34801561016c57600080fd5b5061018061017b366004610ea5565b610310565b60405161018d9190610ee0565b60405180910390f35b3480156101a257600080fd5b506101b66101b1366004610ea5565b61036f565b60405161018d9190610ef6565b61013d6101d1366004610f34565b6103c1565b3480156101e257600080fd5b5061013d6101f1366004610f6c565b610510565b34801561020257600080fd5b5061013d610211366004610f8b565b61058f565b34801561022257600080fd5b5061013d6106fa565b34801561023757600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031660405161018d9190610fba565b34801561027c57600080fd5b5061013d61028b366004610fc8565b61070e565b34801561029c57600080fd5b5061013d6102ab366004610f34565b61087a565b3480156102bc57600080fd5b5061013d6102cb366004610f34565b6108fa565b6102e36102de366004611091565b6109c3565b60405161018d919061111e565b3480156102fc57600080fd5b5061013d61030b366004610f6c565b610acb565b6000808260405160200161032491906112cb565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806103685760405162461bcd60e51b815260040161015790611336565b9392505050565b6000808260405160200161038391906112cb565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906103b95750428111155b949350505050565b6000341180156103d057508034145b6103ec5760405162461bcd60e51b81526004016101579061139e565b60035434906001600160a01b0316156104b0576000610409610b22565b90508034101561042b5760405162461bcd60e51b8152600401610157906113de565b6104358134611404565b6003546040519193506000916001600160a01b039091169083908381818185875af1925050503d8060008114610487576040519150601f19603f3d011682016040523d82523d6000602084013e61048c565b606091505b50509050806104ad5760405162461bcd60e51b81526004016101579061146f565b50505b60006104bb33610bb3565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b6848460405161050292919061147f565b60405180910390a350505050565b610518610c11565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610565576040519150601f19603f3d011682016040523d82523d6000602084013e61056a565b606091505b505090508061058b5760405162461bcd60e51b8152600401610157906114cc565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105da5750825b905060008267ffffffffffffffff1660011480156105f75750303b155b905081158015610605575080155b1561063c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845468ff00000000000000001916680100000000000000001785555b61067987610c85565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156106f157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906106e890600190611500565b60405180910390a15b50505050505050565b610702610c11565b61070c6000610c96565b565b600061071b60013061150e565b905061074e7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806107755750336001600160a01b038216145b6107915760405162461bcd60e51b815260040161015790611563565b600061079d8342611573565b90506000846040516020016107b291906112cb565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156107f65760405162461bcd60e51b8152600401610157906115de565b60008181526020818152604082208490556001919061081790880188610f6c565b6001600160a01b03168152602081019190915260400160009081209061084360808801606089016115ee565b63ffffffff168152602080820192909252604001600090812080546001810182559082529190208691600402016106f18282611a37565b610882610c11565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146108cf576040519150601f19603f3d011682016040523d82523d6000602084013e6108d4565b606091505b50509050806108f55760405162461bcd60e51b8152600401610157906114cc565b505050565b600061090760013061150e565b905061093a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806109615750336001600160a01b038216145b61097d5760405162461bcd60e51b815260040161015790611563565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d3836040516109b69190610ee0565b60405180910390a2505050565b6003546000906001600160a01b031615610a74576109e083610d14565b3410156109ff5760405162461bcd60e51b815260040161015790611a99565b6003546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610a4c576040519150601f19603f3d011682016040523d82523d6000602084013e610a51565b606091505b5050905080610a725760405162461bcd60e51b81526004016101579061146f565b505b610a7d33610bb3565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610aba9796959493929190611aa9565b60405180910390a195945050505050565b610ad3610c11565b6001600160a01b038116610b165760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101579190610fba565b610b1f81610c96565b50565b6003546040517ff1d44d510000000000000000000000000000000000000000000000000000000081526000916001600160a01b03169063f1d44d5190610b6d90602090600401611b15565b602060405180830381865afa158015610b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bae9190611b2e565b905090565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff169160019190610be68385611b4d565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b33610c437f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461070c57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101579190610fba565b610c8d610d96565b610b1f81610dfd565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6003546000906001600160a01b031663f1d44d51610d33601185611573565b6040518263ffffffff1660e01b8152600401610d4f9190610ee0565b602060405180830381865afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d909190611b2e565b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661070c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ad3610d96565b60006001600160a01b038216610d90565b610e1f81610e05565b82525050565b80610e1f565b60408101610e398285610e16565b6103686020830184610e25565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610d9081610e46565b600060c08284031215610e9f57610e9f600080fd5b50919050565b600060208284031215610eba57610eba600080fd5b813567ffffffffffffffff811115610ed457610ed4600080fd5b6103b984828501610e8a565b60208101610d908284610e25565b801515610e1f565b60208101610d908284610eee565b610f0d81610e05565b8114610b1f57600080fd5b8035610d9081610f04565b80610f0d565b8035610d9081610f23565b60008060408385031215610f4a57610f4a600080fd5b610f548484610f18565b9150610f638460208501610f29565b90509250929050565b600060208284031215610f8157610f81600080fd5b6103688383610f18565b60008060408385031215610fa157610fa1600080fd5b610fab8484610f18565b9150610f638460208501610f18565b60208101610d908284610e16565b60008060408385031215610fde57610fde600080fd5b823567ffffffffffffffff811115610ff857610ff8600080fd5b61100485828601610e8a565b925050610f638460208501610f29565b63ffffffff8116610f0d565b8035610d9081611014565b60008083601f84011261104057611040600080fd5b50813567ffffffffffffffff81111561105b5761105b600080fd5b60208301915083600182028301111561107657611076600080fd5b9250929050565b60ff8116610f0d565b8035610d908161107d565b6000806000806000608086880312156110ac576110ac600080fd5b6110b68787611020565b94506110c58760208801611020565b9350604086013567ffffffffffffffff8111156110e4576110e4600080fd5b6110f08882890161102b565b93509350506111028760608801611086565b90509295509295909350565b67ffffffffffffffff8116610e1f565b60208101610d90828461110e565b506000610d906020830183610f18565b67ffffffffffffffff8116610f0d565b8035610d908161113c565b506000610d90602083018361114c565b506000610d906020830183611020565b63ffffffff8116610e1f565b6000808335601e193685900301811261119e5761119e600080fd5b830160208101925035905067ffffffffffffffff8111156111c1576111c1600080fd5b3681900382131561107657611076600080fd5b82818337506000910152565b8183526020830192506111f48284836111d4565b50601f01601f19160190565b506000610d906020830183611086565b60ff8116610e1f565b600060c08301611229838061112c565b6112338582610e16565b506112416020840184611157565b61124e602086018261110e565b5061125c6040840184611167565b6112696040860182611177565b506112776060840184611167565b6112846060860182611177565b506112926080840184611183565b85830360808701526112a58382846111e0565b925050506112b660a0840184611200565b6112c360a0860182611210565b509392505050565b602080825281016103688184611219565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610d90816112dc565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050611330565b60208082528101610d9081611346565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c75659101908152610e74565b60208082528101610d90816113ae565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d9057610d906113ee565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f726163740000000000000000000000000000000000000000000000000000000060208201529050611330565b60208082528101610d9081611417565b6040810161148d8285610e25565b610368602083018461110e565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610e74565b60208082528101610d908161149a565b6000610d90826114ea565b90565b67ffffffffffffffff1690565b610e1f816114dc565b60208101610d9082846114f7565b6001600160a01b03918216919081169082820390811115610d9057610d906113ee565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610e74565b60208082528101610d9081611531565b80820180821115610d9057610d906113ee565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050611330565b60208082528101610d9081611586565b60006020828403121561160357611603600080fd5b6103688383611020565b60008135610d9081610f04565b60006001600160a01b03835b81169019929092169190911792915050565b6000610d9082610e05565b6000610d9082611638565b61165782611643565b61166281835461161a565b8255505050565b60008135610d908161113c565b60007bffffffffffffffff00000000000000000000000000000000000000006116268460a01b90565b6000610d9067ffffffffffffffff83166114ea565b6116bd8261169f565b611662818354611676565b60008135610d9081611014565b60007fffffffff000000000000000000000000000000000000000000000000000000006116268460e01b90565b600063ffffffff8216610d90565b61171982611702565b6116628183546116d5565b600063ffffffff83611626565b61173a82611702565b611662818354611724565b6000808335601e193685900301811261176057611760600080fd5b8301915050803567ffffffffffffffff81111561177f5761177f600080fd5b60208201915060018102360382131561107657611076600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806117da57607f821691505b602082108103610e9f57610e9f6117b0565b6000610d906114e78381565b611801836117ec565b815460001960089490940293841b1916921b91909117905550565b60006108f58184846117f8565b8181101561058b5761183c60008261181c565b600101611829565b601f8211156108f5576000818152602090206020601f8501048101602085101561186b5750805b61187d6020601f860104830182611829565b5050505050565b8267ffffffffffffffff81111561189d5761189d61179a565b6118a782546117c6565b6118b2828285611844565b506000601f8211600181146118e757600083156118cf5750848201355b600019600885021c1981166002850217855550611941565b600084815260209020601f19841690835b8281101561191857878501358255602094850194600190920191016118f8565b5084821015611935576000196008601f8716021c19878501351681555b50506001600284020184555b505050505050565b6108f5838383611884565b60008135610d908161107d565b600060ff8216610d90565b61197582611961565b815460ff191660ff821617611662565b8082806119918161160d565b905061199d818461164e565b505060208301806119ad82611669565b90506119b981846116b4565b505060408301806119c9826116c8565b90506119d58184611710565b50505060608201806119e6826116c8565b90506119f58160018501611731565b5050611a046080830183611745565b611a12818360028601611949565b505060a0820180611a2282611954565b9050611a31816003850161196c565b50505050565b61058b8282611985565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f737361676500000000000000000000000000000000000000000000000000000060208201529050611330565b60208082528101610d9081611a41565b60c08101611ab7828a610e16565b611ac4602083018961110e565b611ad16040830188611177565b611ade6060830187611177565b8181036080830152611af18185876111e0565b9050611b0060a0830184611210565b98975050505050505050565b610e1f816117ec565b60208101610d908284611b0c565b8051610d9081610f23565b600060208284031215611b4357611b43600080fd5b6103688383611b23565b67ffffffffffffffff918216919081169082820190811115610d9057610d906113ee56fea26469706673582212205827e6100538af9307eff1914e07e481a82d2ed05aab2e5cf52b967c89af264964736f6c634300081c00336080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611017806100d96000396000f3fe6080604052600436106100595760003560e01c806382fbdc9c1161004357806382fbdc9c146100ae578063929d34e9146100ce578063a67e1760146100ee57600080fd5b8062e0d3b51461005e5780638129fc1c14610097575b600080fd5b34801561006a57600080fd5b5061007e610079366004610a7a565b610103565b60405161008e9493929190610b15565b60405180910390f35b3480156100a357600080fd5b506100ac6101be565b005b6100c16100bc366004610bac565b610300565b60405161008e9190610bf4565b3480156100da57600080fd5b506100ac6100e9366004610a7a565b610368565b3480156100fa57600080fd5b506100ac61050d565b600060208190529081526040902080546001820180546001600160a01b03909216929161012f90610c18565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610c18565b80156101a85780601f1061017d576101008083540402835291602001916101a8565b820191906000526020600020905b81548152906001019060200180831161018b57829003601f168201915b5050505050908060020154908060030154905084565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156102095750825b905060008267ffffffffffffffff1660011480156102265750303b155b905081158015610234575080155b1561026b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561029f57845468ff00000000000000001916680100000000000000001785555b6000600181905560025583156102f957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906102f090600190610c68565b60405180910390a15b5050505050565b600080341161032a5760405162461bcd60e51b815260040161032190610caa565b60405180910390fd5b6152086103363461055f565b116103535760405162461bcd60e51b815260040161032190610cba565b61035f3384843461056b565b90505b92915050565b60008181526020818152604080832081516080810190925280546001600160a01b0316825260018101805492939192918401916103a490610c18565b80601f01602080910402602001604051908101604052809291908181526020018280546103d090610c18565b801561041d5780601f106103f25761010080835404028352916020019161041d565b820191906000526020600020905b81548152906001019060200180831161040057829003601f168201915b50505050508152602001600282015481526020016003820154815250509050600081600001516001600160a01b0316826020015160405161045e9190610d3d565b6000604051808303816000865af19150503d806000811461049b576040519150601f19603f3d011682016040523d82523d6000602084013e6104a0565b606091505b50509050806104c15760405162461bcd60e51b815260040161032190610d79565b6000838152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906104f86001830182610a25565b50600060028201819055600390910155505050565b600061051a600130610d9f565b9050336001600160a01b038216146105445760405162461bcd60e51b815260040161032190610df4565b6002546001541461055c57610557610654565b610544565b50565b60006103624883610e1a565b60006040518060800160405280866001600160a01b0316815260200185858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020820185905248604090920191909152600180548291826105e083610e2e565b9091555081526020808201929092526040016000208251815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161781559082015160018201906106319082610ef7565b506040820151600282015560609091015160039091015550600154949350505050565b6002546001540361066157565b60008061066c61077f565b91509150600082606001519050600081846040015161068b9190610e1a565b905060005a9050600085600001516001600160a01b03168387602001516040516106b59190610d3d565b60006040518083038160008787f1925050503d80600081146106f3576040519150601f19603f3d011682016040523d82523d6000602084013e6106f8565b606091505b5050905060005a9050600061070d8285610fb7565b905060008186111561073157866107248388610fb7565b61072e9190610fca565b90505b6000818a604001516107439190610fb7565b8a51909150851561075657610756610897565b61075e6108e3565b61076983828c6108fa565b610772826109da565b5050505050505050505050565b6107b3604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b60025460008181526020818152604080832081516080810190925280546001600160a01b03168252600181018054949591949193859290840191906107f790610c18565b80601f016020809104026020016040519081016040528092919081815260200182805461082390610c18565b80156108705780601f1061084557610100808354040283529160200191610870565b820191906000526020600020905b81548152906001019060200180831161085357829003601f168201915b50505050508152602001600282015481526020016003820154815250509150915091509091565b6002546000908152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906108d16001830182610a25565b50600060028201819055600390910155565b600280549060006108f383610e2e565b9190505550565b6000826001600160a01b0316846188b8908460405160240161091c9190610bf4565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5ea39558000000000000000000000000000000000000000000000000000000001790525161097f9190610d3d565b600060405180830381858888f193505050503d80600081146109bd576040519150601f19603f3d011682016040523d82523d6000602084013e6109c2565b606091505b50509050806109d4576109d4846109da565b50505050565b806000036109e55750565b60405141908290600081818185875af1925050503d80600081146109d4576040519150601f19603f3d011682016040523d82523d6000602084013e6109d4565b508054610a3190610c18565b6000825580601f10610a41575050565b601f01602090049060005260206000209081019061055c91905b80821115610a6f5760008155600101610a5b565b5090565b8035610362565b600060208284031215610a8f57610a8f600080fd5b61035f8383610a73565b60006001600160a01b038216610362565b610ab381610a99565b82525050565b60005b83811015610ad4578181015183820152602001610abc565b50506000910152565b6000610ae7825190565b808452602084019350610afe818560208601610ab9565b601f01601f19169290920192915050565b80610ab3565b60808101610b238287610aaa565b8181036020830152610b358186610add565b9050610b446040830185610b0f565b610b516060830184610b0f565b95945050505050565b60008083601f840112610b6f57610b6f600080fd5b50813567ffffffffffffffff811115610b8a57610b8a600080fd5b602083019150836001820283011115610ba557610ba5600080fd5b9250929050565b60008060208385031215610bc257610bc2600080fd5b823567ffffffffffffffff811115610bdc57610bdc600080fd5b610be885828601610b5a565b92509250509250929050565b602081016103628284610b0f565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610c2c57607f821691505b602082108103610c3e57610c3e610c02565b50919050565b600061036282610c52565b90565b67ffffffffffffffff1690565b610ab381610c44565b602081016103628284610c5f565b600d8152602081017f4e6f2076616c75652073656e7400000000000000000000000000000000000000815290505b60200190565b6020808252810161036281610c76565b6020808252810161036281602481527f47617320746f6f206c6f7720636f6d706172656420746f20636f7374206f662060208201527f63616c6c00000000000000000000000000000000000000000000000000000000604082015260600190565b6000610d25825190565b610d33818560208601610ab9565b9290920192915050565b6103628183610d1b565b60198152602081017f43616c6c6261636b20657865637574696f6e206661696c65640000000000000081529050610ca4565b6020808252810161036281610d47565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0391821691908116908282039081111561036257610362610d89565b60088152602081017f4e6f742073656c6600000000000000000000000000000000000000000000000081529050610ca4565b6020808252810161036281610dc2565b634e487b7160e01b600052601260045260246000fd5b600082610e2957610e29610e04565b500490565b600060018201610e4057610e40610d89565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000610362610c4f8381565b610e7283610e5d565b815460001960089490940293841b1916921b91909117905550565b6000610e9a818484610e69565b505050565b81811015610eba57610eb2600082610e8d565b600101610e9f565b5050565b601f821115610e9a576000818152602090206020601f85010481016020851015610ee55750805b6102f96020601f860104830182610e9f565b815167ffffffffffffffff811115610f1157610f11610e47565b610f1b8254610c18565b610f26828285610ebe565b506020601f821160018114610f5b5760008315610f435750848201515b600019600885021c19811660028502178555506102f9565b600084815260208120601f198516915b82811015610f8b5787850151825560209485019460019092019101610f6b565b5084821015610fa85783870151600019601f87166008021c191681555b50505050600202600101905550565b8181038181111561036257610362610d89565b818102811582820484141761036257610362610d8956fea264697066735822122022c0117e92f6ffb3d46b462f20642839c7b4f030bf531f7cf3eb5d72325f73f664736f6c634300081c003360a060405260405161128a38038061128a8339810160408190526100229161046a565b828161002e8282610089565b50508160405161003d9061031d565b61004791906104df565b604051809103906000f080158015610063573d6000803e3d6000fd5b506001600160a01b031660805261008161007c60805190565b6100e8565b505050610534565b6100928261014b565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100dc576100d782826101c5565b505050565b6100e461023e565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012860008051602061126a833981519152546001600160a01b031690565b826040516101379291906104ed565b60405180910390a16101488161025f565b50565b806001600160a01b03163b6000036101815780604051634c9c8ce360e01b815260040161017891906104df565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101e2919061052a565b600060405180830381855af49150503d806000811461021d576040519150601f19603f3d011682016040523d82523d6000602084013e610222565b606091505b50909250905061023385838361029e565b925050505b92915050565b341561025d5760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116610289576000604051633173bdd160e11b815260040161017891906104df565b8060008051602061126a8339815191526101a4565b6060826102b3576102ae826102f4565b6102ed565b81511580156102ca57506001600160a01b0384163b155b156102ea5783604051639996b31560e01b815260040161017891906104df565b50805b9392505050565b8051156103045780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106eb80610b7f83390190565b60006001600160a01b038216610238565b6103448161032a565b811461014857600080fd5b80516102388161033b565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b03811182821017156103955761039561035a565b6040525050565b60006103a760405190565b90506103b38282610370565b919050565b60006001600160401b038211156103d1576103d161035a565b601f19601f83011660200192915050565b60005b838110156103fd5781810151838201526020016103e5565b50506000910152565b6000610419610414846103b8565b61039c565b905082815283838301111561043057610430600080fd5b6102ed8360208301846103e2565b600082601f83011261045257610452600080fd5b8151610462848260208601610406565b949350505050565b60008060006060848603121561048257610482600080fd5b61048c858561034f565b925061049b856020860161034f565b60408501519092506001600160401b038111156104ba576104ba600080fd5b6104c68682870161043e565b9150509250925092565b6104d98161032a565b82525050565b6020810161023882846104d0565b604081016104fb82856104d0565b6102ed60208301846104d0565b6000610512825190565b6105208185602086016103e2565b9290920192915050565b6102388183610508565b60805161063161054e6000396000601001526106316000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea9190610539565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610209919061059d565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161028891906105f1565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610209919061059d565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b905082815283838301111561050857610508600080fd5b6103838360208301846104d2565b600082601f83011261052a5761052a600080fd5b610383838335602085016104de565b6000806040838503121561054f5761054f600080fd5b6105598484610424565b9150602083013567ffffffffffffffff81111561057857610578600080fd5b61058485828601610516565b9150509250929050565b610597816103ff565b82525050565b602081016102dd828461058e565b60005b838110156105c65781810151838201526020016105ae565b50506000910152565b60006105d9825190565b6105e78185602086016105ab565b9290920192915050565b6102dd81836105cf56fea264697066735822122010d1880687d5a44f0a558c272f84fabbd9bf65d697170ee3f6681c2467feb26164736f6c634300081c0033608060405234801561001057600080fd5b506040516106eb3803806106eb83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a919061012d565b60405180910390fd5b61006c81610073565b505061013b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b61011783836100ed565b9392505050565b610127816100c3565b82525050565b602081016100d0828461011e565b6105a18061014a6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610457565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610513565b34801561011a57600080fd5b50610074610129366004610524565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906101939086908690600401610543565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b905082815283838301111561041f5761041f600080fd5b61042d8360208301846103e9565b9392505050565b600082601f83011261044857610448600080fd5b61042d838335602085016103f5565b60008060006060848603121561046f5761046f600080fd5b6104798585610327565b9250610488856020860161033b565b9150604084013567ffffffffffffffff8111156104a7576104a7600080fd5b6104b386828701610434565b9150509250925092565b60005b838110156104d85781810151838201526020016104c0565b50506000910152565b60006104eb825190565b8084526020840193506105028185602086016104bd565b601f01601f19169290920192915050565b6020808252810161042d81846104e1565b60006020828403121561053957610539600080fd5b61042d838361033b565b6040810161055182856102eb565b818103602083015261056381846104e1565b94935050505056fea264697066735822122096c3a562b6861bd964d97d99d95931f7343ac03c64bc04aeab6287f6e42e45eb64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103bd64e14789a915ea657e42f2dbf0b973227708fa64b58766287637985d1ade69", + Bin: "0x608060405234801561001057600080fd5b50604051615c6f380380615c6f83398101604081905261002f916103e7565b61003881610060565b6000610044828261011d565b905061005082826101e2565b610059826102a2565b50506105c4565b600060405161006e90610373565b604051809103906000f08015801561008a573d6000803e3d6000fd5b509050600063c4d66de860e01b836040516024016100a8919061041c565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006100f083858461032f60201b60201c565b9050600080516020615c4f8339815191528160405161010f919061045e565b60405180910390a150505050565b60008060405161012c90610380565b604051809103906000f080158015610148573d6000803e3d6000fd5b509050600063da35a26f60e01b8486604051602401610168929190610483565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b038381831617835250505050905060006101b083878461032f60201b60201c565b9050600080516020615c4f833981519152816040516101cf91906104b7565b60405180910390a1925050505b92915050565b60006040516101f09061038d565b604051809103906000f08015801561020c573d6000803e3d6000fd5b509050600063485cc95560e01b848460405160240161022c9291906104c7565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600061027483868461032f60201b60201c565b9050600080516020615c4f8339815191528160405161029391906104f4565b60405180910390a15050505050565b60006040516102b09061039a565b604051809103906000f0801580156102cc573d6000803e3d6000fd5b506040805160048152602481019091526020810180516001600160e01b0390811663204a7f0760e21b17909152919250906000906103109084908690859061032f16565b9050600080516020615c4f8339815191528160405161010f9190610528565b600080848484604051610341906103a7565b61034d9392919061058e565b604051809103906000f080158015610369573d6000803e3d6000fd5b5095945050505050565b610dfe8061061183390190565b6107c68061140f83390190565b611d0080611bd583390190565b6110f0806138d583390190565b61128a806149c583390190565b60006001600160a01b0382166101dc565b6103ce816103b4565b81146103d957600080fd5b50565b80516101dc816103c5565b6000602082840312156103fc576103fc600080fd5b61040683836103dc565b9392505050565b610416816103b4565b82525050565b602081016101dc828461040d565b60198152602081017f5472616e73616374696f6e73506f737450726f636573736f7200000000000000815290505b60200190565b6040808252810161046e8161042a565b90506101dc602083018461040d565b80610416565b60408101610491828561047d565b610406602083018461040d565b6004815260208101634665657360e01b81529050610458565b6040808252810161046e8161049e565b60408101610491828561040d565b600a815260208101694d65737361676542757360b01b81529050610458565b6040808252810161046e816104d5565b600f8152602081016e5075626c696343616c6c6261636b7360881b81529050610458565b6040808252810161046e81610504565b60005b8381101561055357818101518382015260200161053b565b50506000910152565b6000610566825190565b80845260208401935061057d818560208601610538565b601f01601f19169290920192915050565b6060810161059c828661040d565b6105a9602083018561040d565b81810360408301526105bb818461055c565b95945050505050565b603f806105d26000396000f3fe6080604052600080fdfea2646970667358221220cfb9abdae2b57cca2b06e1592a881ffea4f5fb7d2226145858f8312ae691b7f664736f6c634300081c00336080604052348015600f57600080fd5b50610ddf8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc3660046107fd565b610265565b6040516100ee919061082d565b60405180910390f35b61011a61010536600461084c565b60009081526020819052604090206001015490565b6040516100ee9190610871565b61013a6101353660046108a4565b6102fe565b005b61013a61014a3660046108a4565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a61018436600461092e565b61037a565b6100e16101973660046108a4565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d6366004610976565b610492565b61013a6101e93660046108a4565b610602565b61013a6101fc366004610976565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461031981610627565b6103238383610634565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037582826106de565b505050565b60006103876001306109ab565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a02565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a44565b60005b600154811015610323576000600182815481106103fd576103fd610a54565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906104549088908890600401610d4b565b600060405180830381600087803b15801561046e57600080fd5b505af1158015610482573d6000803e3d6000fd5b50505050508060010190506103de565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104dd5750825b905060008267ffffffffffffffff1660011480156104fa5750303b155b905081158015610508575080155b1561053f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561057357845468ff00000000000000001916680100000000000000001785555b61057e600087610634565b506105a97ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59887610634565b5083156105fa57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906105f190600190610d80565b60405180910390a15b505050505050565b60008281526020819052604090206001015461061d81610627565b61032383836106de565b6106318133610761565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166106d6576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561068e3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16156106d6576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107bf5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610d8e565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461063157600080fd5b80356102f8816107c3565b60006020828403121561081257610812600080fd5b61081c83836107f2565b9392505050565b8015155b82525050565b602081016102f88284610823565b806107e7565b80356102f88161083b565b60006020828403121561086157610861600080fd5b61081c8383610841565b80610827565b602081016102f8828461086b565b60006001600160a01b0382166102f8565b6107e78161087f565b80356102f881610890565b600080604083850312156108ba576108ba600080fd5b6108c48484610841565b91506108d38460208501610899565b90509250929050565b60008083601f8401126108f1576108f1600080fd5b50813567ffffffffffffffff81111561090c5761090c600080fd5b60208301915083602082028301111561092757610927600080fd5b9250929050565b6000806020838503121561094457610944600080fd5b823567ffffffffffffffff81111561095e5761095e600080fd5b61096a858286016108dc565b92509250509250929050565b60006020828403121561098b5761098b600080fd5b61081c8383610899565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f8610995565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f8816109ce565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000815290506109fc565b602080825281016102f881610a12565b634e487b7160e01b600052603260045260246000fd5b60ff81166107e7565b80356102f881610a6a565b5060006102f86020830183610a73565b60ff8116610827565b5060006102f86020830183610841565b5060006102f86020830183610899565b6108278161087f565b6000808335601e1936859003018112610adb57610adb600080fd5b830160208101925035905067ffffffffffffffff811115610afe57610afe600080fd5b3681900382131561092757610927600080fd5b82818337506000910152565b818352602083019250610b31828483610b11565b50601f01601f19160190565b8015156107e7565b80356102f881610b3d565b5060006102f86020830183610b45565b67ffffffffffffffff81166107e7565b80356102f881610b60565b5060006102f86020830183610b70565b67ffffffffffffffff8116610827565b60006101408301610bac8380610a7e565b610bb68582610a8e565b50610bc46020840184610a97565b610bd1602086018261086b565b50610bdf6040840184610a97565b610bec604086018261086b565b50610bfa6060840184610a97565b610c07606086018261086b565b50610c156080840184610aa7565b610c226080860182610ab7565b50610c3060a0840184610a97565b610c3d60a086018261086b565b50610c4b60c0840184610ac0565b85830360c0870152610c5e838284610b1d565b92505050610c6f60e0840184610aa7565b610c7c60e0860182610ab7565b50610c8b610100840184610b50565b610c99610100860182610823565b50610ca8610120840184610b7b565b610cb6610120860182610b8b565b509392505050565b600061081c8383610b9b565b6000823561013e1936849003018112610ce557610ce5600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d3e578484038952610d1c8284610cca565b610d268582610cbe565b94505060208201602099909901989150600101610d05565b5091979650505050505050565b60208082528101610d5d818486610cee565b949350505050565b600067ffffffffffffffff82166102f8565b61082781610d65565b602081016102f88284610d77565b60408101610d9c8285610ab7565b61081c602083018461086b56fea2646970667358221220000c7add8ef77f2ce3e54738e1a6216052e3c7d3dfd30f31adc394e073238b4d64736f6c634300081c00336080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6106ed806100d96000396000f3fe60806040526004361061007f5760003560e01c8063afe997ea1161004e578063afe997ea1461012c578063da35a26f14610141578063f1d44d5114610161578063f2fde38b1461018157600080fd5b806323aa2a9d1461008b578063715018a6146100ad5780638da5cb5b146100c25780639003adfe1461011057600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506100ab6100a6366004610575565b6101a1565b005b3480156100b957600080fd5b506100ab6101ae565b3480156100ce57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031660405161010791906105bb565b60405180910390f35b34801561011c57600080fd5b50475b60405161010791906105cf565b34801561013857600080fd5b506100ab6101c2565b34801561014d57600080fd5b506100ab61015c3660046105f1565b610225565b34801561016d57600080fd5b5061011f61017c366004610575565b61036d565b34801561018d57600080fd5b506100ab61019c366004610629565b610383565b6101a96103e0565b600055565b6101b66103e0565b6101c06000610454565b565b6101ca6103e0565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610222573d6000803e3d6000fd5b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156102705750825b905060008267ffffffffffffffff16600114801561028d5750303b155b90508115801561029b575080155b156102d2576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561030657845468ff00000000000000001916680100000000000000001785555b61030f866104dd565b6000879055831561036457845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061035b90600190610663565b60405180910390a15b50505050505050565b60008160005461037d91906106a0565b92915050565b61038b6103e0565b6001600160a01b0381166103d75760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016103ce91906105bb565b60405180910390fd5b61022281610454565b336104127f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146101c057336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016103ce91906105bb565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6104e56104ee565b61022281610555565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166101c0576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61038b6104ee565b805b811461022257600080fd5b803561037d8161055d565b60006020828403121561058a5761058a600080fd5b610594838361056a565b9392505050565b60006001600160a01b03821661037d565b6105b58161059b565b82525050565b6020810161037d82846105ac565b806105b5565b6020810161037d82846105c9565b61055f8161059b565b803561037d816105dd565b6000806040838503121561060757610607600080fd5b610611848461056a565b915061062084602085016105e6565b90509250929050565b60006020828403121561063e5761063e600080fd5b61059483836105e6565b600067ffffffffffffffff821661037d565b6105b581610648565b6020810161037d828461065a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b818102811582820484141761037d5761037d61067156fea26469706673582212203b15352e8f587de7fab730ebe897ce1d19b5fb0f5a07f4e8af1cc73861e46f5864736f6c634300081c0033608060405234801561001057600080fd5b5061001a33610027565b610022610098565b61014a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100e85760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146101475780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611ba7806101596000396000f3fe6080604052600436106100cb5760003560e01c80638da5cb5b11610074578063ab53bddc1161004e578063ab53bddc146102b0578063b1454caa146102d0578063f2fde38b146102f05761013f565b80638da5cb5b1461022b5780639730886d1461027057806399a3ad21146102905761013f565b806336d2da90116100a557806336d2da90146101d6578063485cc955146101f6578063715018a6146102165761013f565b80630fcfbd111461016057806333a88c7214610196578063346633fb146101c35761013f565b3661013f576040517f346633fb000000000000000000000000000000000000000000000000000000008152309063346633fb9034906101109033908390600401610e2b565b6000604051808303818588803b15801561012957600080fd5b505af115801561013d573d6000803e3d6000fd5b005b60405162461bcd60e51b815260040161015790610e7a565b60405180910390fd5b34801561016c57600080fd5b5061018061017b366004610ea5565b610310565b60405161018d9190610ee0565b60405180910390f35b3480156101a257600080fd5b506101b66101b1366004610ea5565b61036f565b60405161018d9190610ef6565b61013d6101d1366004610f34565b6103c1565b3480156101e257600080fd5b5061013d6101f1366004610f6c565b610510565b34801561020257600080fd5b5061013d610211366004610f8b565b61058f565b34801561022257600080fd5b5061013d6106fa565b34801561023757600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031660405161018d9190610fba565b34801561027c57600080fd5b5061013d61028b366004610fc8565b61070e565b34801561029c57600080fd5b5061013d6102ab366004610f34565b61087a565b3480156102bc57600080fd5b5061013d6102cb366004610f34565b6108fa565b6102e36102de366004611091565b6109c3565b60405161018d919061111e565b3480156102fc57600080fd5b5061013d61030b366004610f6c565b610acb565b6000808260405160200161032491906112cb565b60408051601f198184030181529181528151602092830120600081815292839052912054909150806103685760405162461bcd60e51b815260040161015790611336565b9392505050565b6000808260405160200161038391906112cb565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906103b95750428111155b949350505050565b6000341180156103d057508034145b6103ec5760405162461bcd60e51b81526004016101579061139e565b60035434906001600160a01b0316156104b0576000610409610b22565b90508034101561042b5760405162461bcd60e51b8152600401610157906113de565b6104358134611404565b6003546040519193506000916001600160a01b039091169083908381818185875af1925050503d8060008114610487576040519150601f19603f3d011682016040523d82523d6000602084013e61048c565b606091505b50509050806104ad5760405162461bcd60e51b81526004016101579061146f565b50505b60006104bb33610bb3565b9050836001600160a01b0316336001600160a01b03167f50c536ac33a920f00755865b831d17bf4cff0b2e0345f65b16d52bfc004068b6848460405161050292919061147f565b60405180910390a350505050565b610518610c11565b6000816001600160a01b03164760405160006040518083038185875af1925050503d8060008114610565576040519150601f19603f3d011682016040523d82523d6000602084013e61056a565b606091505b505090508061058b5760405162461bcd60e51b8152600401610157906114cc565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105da5750825b905060008267ffffffffffffffff1660011480156105f75750303b155b905081158015610605575080155b1561063c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845468ff00000000000000001916680100000000000000001785555b61067987610c85565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03881617905583156106f157845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906106e890600190611500565b60405180910390a15b50505050505050565b610702610c11565b61070c6000610c96565b565b600061071b60013061150e565b905061074e7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806107755750336001600160a01b038216145b6107915760405162461bcd60e51b815260040161015790611563565b600061079d8342611573565b90506000846040516020016107b291906112cb565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156107f65760405162461bcd60e51b8152600401610157906115de565b60008181526020818152604082208490556001919061081790880188610f6c565b6001600160a01b03168152602081019190915260400160009081209061084360808801606089016115ee565b63ffffffff168152602080820192909252604001600090812080546001810182559082529190208691600402016106f18282611a37565b610882610c11565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146108cf576040519150601f19603f3d011682016040523d82523d6000602084013e6108d4565b606091505b50509050806108f55760405162461bcd60e51b8152600401610157906114cc565b505050565b600061090760013061150e565b905061093a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316336001600160a01b031614806109615750336001600160a01b038216145b61097d5760405162461bcd60e51b815260040161015790611563565b826001600160a01b03167fcd9850463422a7449c406a036e35e5edb6fbe35a64c9f12a2354be98a750c0d3836040516109b69190610ee0565b60405180910390a2505050565b6003546000906001600160a01b031615610a74576109e083610d14565b3410156109ff5760405162461bcd60e51b815260040161015790611a99565b6003546040516000916001600160a01b03169034908381818185875af1925050503d8060008114610a4c576040519150601f19603f3d011682016040523d82523d6000602084013e610a51565b606091505b5050905080610a725760405162461bcd60e51b81526004016101579061146f565b505b610a7d33610bb3565b90507fb93c37389233beb85a3a726c3f15c2d15533ee74cb602f20f490dfffef77593733828888888888604051610aba9796959493929190611aa9565b60405180910390a195945050505050565b610ad3610c11565b6001600160a01b038116610b165760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101579190610fba565b610b1f81610c96565b50565b6003546040517ff1d44d510000000000000000000000000000000000000000000000000000000081526000916001600160a01b03169063f1d44d5190610b6d90602090600401611b15565b602060405180830381865afa158015610b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bae9190611b2e565b905090565b6001600160a01b0381166000908152600260205260408120805467ffffffffffffffff169160019190610be68385611b4d565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550919050565b33610c437f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461070c57336040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016101579190610fba565b610c8d610d96565b610b1f81610dfd565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6003546000906001600160a01b031663f1d44d51610d33601185611573565b6040518263ffffffff1660e01b8152600401610d4f9190610ee0565b602060405180830381865afa158015610d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d909190611b2e565b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661070c576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610ad3610d96565b60006001600160a01b038216610d90565b610e1f81610e05565b82525050565b80610e1f565b60408101610e398285610e16565b6103686020830184610e25565b600b8152602081017f756e737570706f72746564000000000000000000000000000000000000000000815290505b60200190565b60208082528101610d9081610e46565b600060c08284031215610e9f57610e9f600080fd5b50919050565b600060208284031215610eba57610eba600080fd5b813567ffffffffffffffff811115610ed457610ed4600080fd5b6103b984828501610e8a565b60208101610d908284610e25565b801515610e1f565b60208101610d908284610eee565b610f0d81610e05565b8114610b1f57600080fd5b8035610d9081610f04565b80610f0d565b8035610d9081610f23565b60008060408385031215610f4a57610f4a600080fd5b610f548484610f18565b9150610f638460208501610f29565b90509250929050565b600060208284031215610f8157610f81600080fd5b6103688383610f18565b60008060408385031215610fa157610fa1600080fd5b610fab8484610f18565b9150610f638460208501610f18565b60208101610d908284610e16565b60008060408385031215610fde57610fde600080fd5b823567ffffffffffffffff811115610ff857610ff8600080fd5b61100485828601610e8a565b925050610f638460208501610f29565b63ffffffff8116610f0d565b8035610d9081611014565b60008083601f84011261104057611040600080fd5b50813567ffffffffffffffff81111561105b5761105b600080fd5b60208301915083600182028301111561107657611076600080fd5b9250929050565b60ff8116610f0d565b8035610d908161107d565b6000806000806000608086880312156110ac576110ac600080fd5b6110b68787611020565b94506110c58760208801611020565b9350604086013567ffffffffffffffff8111156110e4576110e4600080fd5b6110f08882890161102b565b93509350506111028760608801611086565b90509295509295909350565b67ffffffffffffffff8116610e1f565b60208101610d90828461110e565b506000610d906020830183610f18565b67ffffffffffffffff8116610f0d565b8035610d908161113c565b506000610d90602083018361114c565b506000610d906020830183611020565b63ffffffff8116610e1f565b6000808335601e193685900301811261119e5761119e600080fd5b830160208101925035905067ffffffffffffffff8111156111c1576111c1600080fd5b3681900382131561107657611076600080fd5b82818337506000910152565b8183526020830192506111f48284836111d4565b50601f01601f19160190565b506000610d906020830183611086565b60ff8116610e1f565b600060c08301611229838061112c565b6112338582610e16565b506112416020840184611157565b61124e602086018261110e565b5061125c6040840184611167565b6112696040860182611177565b506112776060840184611167565b6112846060860182611177565b506112926080840184611183565b85830360808701526112a58382846111e0565b925050506112b660a0840184611200565b6112c360a0860182611210565b509392505050565b602080825281016103688184611219565b60218152602081017f54686973206d65737361676520776173206e65766572207375626d697474656481527f2e00000000000000000000000000000000000000000000000000000000000000602082015290505b60400190565b60208082528101610d90816112dc565b60308152602081017f417474656d7074696e6720746f2073656e642076616c756520776974686f757481527f2070726f766964696e672045746865720000000000000000000000000000000060208201529050611330565b60208082528101610d9081611346565b60208082527f496e73756666696369656e742066756e647320746f2073656e642076616c75659101908152610e74565b60208082528101610d90816113ae565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d9057610d906113ee565b60248152602081017f4661696c656420746f2073656e64206665657320746f206665657320636f6e7481527f726163740000000000000000000000000000000000000000000000000000000060208201529050611330565b60208082528101610d9081611417565b6040810161148d8285610e25565b610368602083018461110e565b60148152602081017f6661696c65642073656e64696e672076616c756500000000000000000000000081529050610e74565b60208082528101610d908161149a565b6000610d90826114ea565b90565b67ffffffffffffffff1690565b610e1f816114dc565b60208101610d9082846114f7565b6001600160a01b03918216919081169082820390811115610d9057610d906113ee565b60118152602081017f4e6f74206f776e6572206f722073656c6600000000000000000000000000000081529050610e74565b60208082528101610d9081611531565b80820180821115610d9057610d906113ee565b60218152602081017f4d657373616765207375626d6974746564206d6f7265207468616e206f6e636581527f210000000000000000000000000000000000000000000000000000000000000060208201529050611330565b60208082528101610d9081611586565b60006020828403121561160357611603600080fd5b6103688383611020565b60008135610d9081610f04565b60006001600160a01b03835b81169019929092169190911792915050565b6000610d9082610e05565b6000610d9082611638565b61165782611643565b61166281835461161a565b8255505050565b60008135610d908161113c565b60007bffffffffffffffff00000000000000000000000000000000000000006116268460a01b90565b6000610d9067ffffffffffffffff83166114ea565b6116bd8261169f565b611662818354611676565b60008135610d9081611014565b60007fffffffff000000000000000000000000000000000000000000000000000000006116268460e01b90565b600063ffffffff8216610d90565b61171982611702565b6116628183546116d5565b600063ffffffff83611626565b61173a82611702565b611662818354611724565b6000808335601e193685900301811261176057611760600080fd5b8301915050803567ffffffffffffffff81111561177f5761177f600080fd5b60208201915060018102360382131561107657611076600080fd5b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602260045260246000fd5b6002810460018216806117da57607f821691505b602082108103610e9f57610e9f6117b0565b6000610d906114e78381565b611801836117ec565b815460001960089490940293841b1916921b91909117905550565b60006108f58184846117f8565b8181101561058b5761183c60008261181c565b600101611829565b601f8211156108f5576000818152602090206020601f8501048101602085101561186b5750805b61187d6020601f860104830182611829565b5050505050565b8267ffffffffffffffff81111561189d5761189d61179a565b6118a782546117c6565b6118b2828285611844565b506000601f8211600181146118e757600083156118cf5750848201355b600019600885021c1981166002850217855550611941565b600084815260209020601f19841690835b8281101561191857878501358255602094850194600190920191016118f8565b5084821015611935576000196008601f8716021c19878501351681555b50506001600284020184555b505050505050565b6108f5838383611884565b60008135610d908161107d565b600060ff8216610d90565b61197582611961565b815460ff191660ff821617611662565b8082806119918161160d565b905061199d818461164e565b505060208301806119ad82611669565b90506119b981846116b4565b505060408301806119c9826116c8565b90506119d58184611710565b50505060608201806119e6826116c8565b90506119f58160018501611731565b5050611a046080830183611745565b611a12818360028601611949565b505060a0820180611a2282611954565b9050611a31816003850161196c565b50505050565b61058b8282611985565b60258152602081017f496e73756666696369656e742066756e647320746f207075626c697368206d6581527f737361676500000000000000000000000000000000000000000000000000000060208201529050611330565b60208082528101610d9081611a41565b60c08101611ab7828a610e16565b611ac4602083018961110e565b611ad16040830188611177565b611ade6060830187611177565b8181036080830152611af18185876111e0565b9050611b0060a0830184611210565b98975050505050505050565b610e1f816117ec565b60208101610d908284611b0c565b8051610d9081610f23565b600060208284031215611b4357611b43600080fd5b6103688383611b23565b67ffffffffffffffff918216919081169082820190811115610d9057610d906113ee56fea26469706673582212205827e6100538af9307eff1914e07e481a82d2ed05aab2e5cf52b967c89af264964736f6c634300081c00336080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b611017806100d96000396000f3fe6080604052600436106100595760003560e01c806382fbdc9c1161004357806382fbdc9c146100ae578063929d34e9146100ce578063a67e1760146100ee57600080fd5b8062e0d3b51461005e5780638129fc1c14610097575b600080fd5b34801561006a57600080fd5b5061007e610079366004610a7a565b610103565b60405161008e9493929190610b15565b60405180910390f35b3480156100a357600080fd5b506100ac6101be565b005b6100c16100bc366004610bac565b610300565b60405161008e9190610bf4565b3480156100da57600080fd5b506100ac6100e9366004610a7a565b610368565b3480156100fa57600080fd5b506100ac61050d565b600060208190529081526040902080546001820180546001600160a01b03909216929161012f90610c18565b80601f016020809104026020016040519081016040528092919081815260200182805461015b90610c18565b80156101a85780601f1061017d576101008083540402835291602001916101a8565b820191906000526020600020905b81548152906001019060200180831161018b57829003601f168201915b5050505050908060020154908060030154905084565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156102095750825b905060008267ffffffffffffffff1660011480156102265750303b155b905081158015610234575080155b1561026b576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561029f57845468ff00000000000000001916680100000000000000001785555b6000600181905560025583156102f957845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906102f090600190610c68565b60405180910390a15b5050505050565b600080341161032a5760405162461bcd60e51b815260040161032190610caa565b60405180910390fd5b6152086103363461055f565b116103535760405162461bcd60e51b815260040161032190610cba565b61035f3384843461056b565b90505b92915050565b60008181526020818152604080832081516080810190925280546001600160a01b0316825260018101805492939192918401916103a490610c18565b80601f01602080910402602001604051908101604052809291908181526020018280546103d090610c18565b801561041d5780601f106103f25761010080835404028352916020019161041d565b820191906000526020600020905b81548152906001019060200180831161040057829003601f168201915b50505050508152602001600282015481526020016003820154815250509050600081600001516001600160a01b0316826020015160405161045e9190610d3d565b6000604051808303816000865af19150503d806000811461049b576040519150601f19603f3d011682016040523d82523d6000602084013e6104a0565b606091505b50509050806104c15760405162461bcd60e51b815260040161032190610d79565b6000838152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906104f86001830182610a25565b50600060028201819055600390910155505050565b600061051a600130610d9f565b9050336001600160a01b038216146105445760405162461bcd60e51b815260040161032190610df4565b6002546001541461055c57610557610654565b610544565b50565b60006103624883610e1a565b60006040518060800160405280866001600160a01b0316815260200185858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509385525050506020820185905248604090920191909152600180548291826105e083610e2e565b9091555081526020808201929092526040016000208251815473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039091161781559082015160018201906106319082610ef7565b506040820151600282015560609091015160039091015550600154949350505050565b6002546001540361066157565b60008061066c61077f565b91509150600082606001519050600081846040015161068b9190610e1a565b905060005a9050600085600001516001600160a01b03168387602001516040516106b59190610d3d565b60006040518083038160008787f1925050503d80600081146106f3576040519150601f19603f3d011682016040523d82523d6000602084013e6106f8565b606091505b5050905060005a9050600061070d8285610fb7565b905060008186111561073157866107248388610fb7565b61072e9190610fca565b90505b6000818a604001516107439190610fb7565b8a51909150851561075657610756610897565b61075e6108e3565b61076983828c6108fa565b610772826109da565b5050505050505050505050565b6107b3604051806080016040528060006001600160a01b031681526020016060815260200160008152602001600081525090565b60025460008181526020818152604080832081516080810190925280546001600160a01b03168252600181018054949591949193859290840191906107f790610c18565b80601f016020809104026020016040519081016040528092919081815260200182805461082390610c18565b80156108705780601f1061084557610100808354040283529160200191610870565b820191906000526020600020905b81548152906001019060200180831161085357829003601f168201915b50505050508152602001600282015481526020016003820154815250509150915091509091565b6002546000908152602081905260408120805473ffffffffffffffffffffffffffffffffffffffff19168155906108d16001830182610a25565b50600060028201819055600390910155565b600280549060006108f383610e2e565b9190505550565b6000826001600160a01b0316846188b8908460405160240161091c9190610bf4565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f5ea39558000000000000000000000000000000000000000000000000000000001790525161097f9190610d3d565b600060405180830381858888f193505050503d80600081146109bd576040519150601f19603f3d011682016040523d82523d6000602084013e6109c2565b606091505b50509050806109d4576109d4846109da565b50505050565b806000036109e55750565b60405141908290600081818185875af1925050503d80600081146109d4576040519150601f19603f3d011682016040523d82523d6000602084013e6109d4565b508054610a3190610c18565b6000825580601f10610a41575050565b601f01602090049060005260206000209081019061055c91905b80821115610a6f5760008155600101610a5b565b5090565b8035610362565b600060208284031215610a8f57610a8f600080fd5b61035f8383610a73565b60006001600160a01b038216610362565b610ab381610a99565b82525050565b60005b83811015610ad4578181015183820152602001610abc565b50506000910152565b6000610ae7825190565b808452602084019350610afe818560208601610ab9565b601f01601f19169290920192915050565b80610ab3565b60808101610b238287610aaa565b8181036020830152610b358186610add565b9050610b446040830185610b0f565b610b516060830184610b0f565b95945050505050565b60008083601f840112610b6f57610b6f600080fd5b50813567ffffffffffffffff811115610b8a57610b8a600080fd5b602083019150836001820283011115610ba557610ba5600080fd5b9250929050565b60008060208385031215610bc257610bc2600080fd5b823567ffffffffffffffff811115610bdc57610bdc600080fd5b610be885828601610b5a565b92509250509250929050565b602081016103628284610b0f565b634e487b7160e01b600052602260045260246000fd5b600281046001821680610c2c57607f821691505b602082108103610c3e57610c3e610c02565b50919050565b600061036282610c52565b90565b67ffffffffffffffff1690565b610ab381610c44565b602081016103628284610c5f565b600d8152602081017f4e6f2076616c75652073656e7400000000000000000000000000000000000000815290505b60200190565b6020808252810161036281610c76565b6020808252810161036281602481527f47617320746f6f206c6f7720636f6d706172656420746f20636f7374206f662060208201527f63616c6c00000000000000000000000000000000000000000000000000000000604082015260600190565b6000610d25825190565b610d33818560208601610ab9565b9290920192915050565b6103628183610d1b565b60198152602081017f43616c6c6261636b20657865637574696f6e206661696c65640000000000000081529050610ca4565b6020808252810161036281610d47565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0391821691908116908282039081111561036257610362610d89565b60088152602081017f4e6f742073656c6600000000000000000000000000000000000000000000000081529050610ca4565b6020808252810161036281610dc2565b634e487b7160e01b600052601260045260246000fd5b600082610e2957610e29610e04565b500490565b600060018201610e4057610e40610d89565b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000610362610c4f8381565b610e7283610e5d565b815460001960089490940293841b1916921b91909117905550565b6000610e9a818484610e69565b505050565b81811015610eba57610eb2600082610e8d565b600101610e9f565b5050565b601f821115610e9a576000818152602090206020601f85010481016020851015610ee55750805b6102f96020601f860104830182610e9f565b815167ffffffffffffffff811115610f1157610f11610e47565b610f1b8254610c18565b610f26828285610ebe565b506020601f821160018114610f5b5760008315610f435750848201515b600019600885021c19811660028502178555506102f9565b600084815260208120601f198516915b82811015610f8b5787850151825560209485019460019092019101610f6b565b5084821015610fa85783870151600019601f87166008021c191681555b50505050600202600101905550565b8181038181111561036257610362610d89565b818102811582820484141761036257610362610d8956fea264697066735822122022c0117e92f6ffb3d46b462f20642839c7b4f030bf531f7cf3eb5d72325f73f664736f6c634300081c003360a060405260405161128a38038061128a8339810160408190526100229161046a565b828161002e8282610089565b50508160405161003d9061031d565b61004791906104df565b604051809103906000f080158015610063573d6000803e3d6000fd5b506001600160a01b031660805261008161007c60805190565b6100e8565b505050610534565b6100928261014b565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156100dc576100d782826101c5565b505050565b6100e461023e565b5050565b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f61012860008051602061126a833981519152546001600160a01b031690565b826040516101379291906104ed565b60405180910390a16101488161025f565b50565b806001600160a01b03163b6000036101815780604051634c9c8ce360e01b815260040161017891906104df565b60405180910390fd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080846001600160a01b0316846040516101e2919061052a565b600060405180830381855af49150503d806000811461021d576040519150601f19603f3d011682016040523d82523d6000602084013e610222565b606091505b50909250905061023385838361029e565b925050505b92915050565b341561025d5760405163b398979f60e01b815260040160405180910390fd5b565b6001600160a01b038116610289576000604051633173bdd160e11b815260040161017891906104df565b8060008051602061126a8339815191526101a4565b6060826102b3576102ae826102f4565b6102ed565b81511580156102ca57506001600160a01b0384163b155b156102ea5783604051639996b31560e01b815260040161017891906104df565b50805b9392505050565b8051156103045780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6106eb80610b7f83390190565b60006001600160a01b038216610238565b6103448161032a565b811461014857600080fd5b80516102388161033b565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681016001600160401b03811182821017156103955761039561035a565b6040525050565b60006103a760405190565b90506103b38282610370565b919050565b60006001600160401b038211156103d1576103d161035a565b601f19601f83011660200192915050565b60005b838110156103fd5781810151838201526020016103e5565b50506000910152565b6000610419610414846103b8565b61039c565b905082815283838301111561043057610430600080fd5b6102ed8360208301846103e2565b600082601f83011261045257610452600080fd5b8151610462848260208601610406565b949350505050565b60008060006060848603121561048257610482600080fd5b61048c858561034f565b925061049b856020860161034f565b60408501519092506001600160401b038111156104ba576104ba600080fd5b6104c68682870161043e565b9150509250925092565b6104d98161032a565b82525050565b6020810161023882846104d0565b604081016104fb82856104d0565b6102ed60208301846104d0565b6000610512825190565b6105208185602086016103e2565b9290920192915050565b6102388183610508565b60805161063161054e6000396000601001526106316000f3fe608060405261000c61000e565b005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036100c5576000357fffffffff00000000000000000000000000000000000000000000000000000000167f4f1ef28600000000000000000000000000000000000000000000000000000000146100bb576040517fd2b576ec00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6100c36100cd565b565b6100c36100fc565b6000806100dd36600481846103cf565b8101906100ea9190610539565b915091506100f8828261010c565b5050565b6100c3610107610167565b61019f565b610115826101c3565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561015f5761015a828261026b565b505050565b6100f86102e3565b600061019a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156101be573d6000f35b3d6000fd5b806001600160a01b03163b60000361021257806040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401610209919061059d565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161028891906105f1565b600060405180830381855af49150503d80600081146102c3576040519150601f19603f3d011682016040523d82523d6000602084013e6102c8565b606091505b50915091506102d885838361031b565b925050505b92915050565b34156100c3576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060826103305761032b8261038a565b610383565b815115801561034757506001600160a01b0384163b155b1561038057836040517f9996b315000000000000000000000000000000000000000000000000000000008152600401610209919061059d565b50805b9392505050565b80511561039a5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50565b600080858511156103e2576103e2600080fd5b838611156103f2576103f2600080fd5b5050820193919092039150565b60006001600160a01b0382166102dd565b610419816103ff565b81146103cc57600080fd5b80356102dd81610410565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff821117156104845761048461042f565b6040525050565b600061049660405190565b90506104a2828261045e565b919050565b600067ffffffffffffffff8211156104c1576104c161042f565b601f19601f83011660200192915050565b82818337506000910152565b60006104f16104ec846104a7565b61048b565b905082815283838301111561050857610508600080fd5b6103838360208301846104d2565b600082601f83011261052a5761052a600080fd5b610383838335602085016104de565b6000806040838503121561054f5761054f600080fd5b6105598484610424565b9150602083013567ffffffffffffffff81111561057857610578600080fd5b61058485828601610516565b9150509250929050565b610597816103ff565b82525050565b602081016102dd828461058e565b60005b838110156105c65781810151838201526020016105ae565b50506000910152565b60006105d9825190565b6105e78185602086016105ab565b9290920192915050565b6102dd81836105cf56fea264697066735822122010d1880687d5a44f0a558c272f84fabbd9bf65d697170ee3f6681c2467feb26164736f6c634300081c0033608060405234801561001057600080fd5b506040516106eb3803806106eb83398101604081905261002f916100f8565b806001600160a01b038116610063576000604051631e4fbdf760e01b815260040161005a919061012d565b60405180910390fd5b61006c81610073565b505061013b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6100df816100c3565b81146100ea57600080fd5b50565b80516100d0816100d6565b60006020828403121561010d5761010d600080fd5b61011783836100ed565b9392505050565b610127816100c3565b82525050565b602081016100d0828461011e565b6105a18061014a6000396000f3fe60806040526004361061005a5760003560e01c80639623609d116100435780639623609d146100a5578063ad3cb1cc146100b8578063f2fde38b1461010e57600080fd5b8063715018a61461005f5780638da5cb5b14610076575b600080fd5b34801561006b57600080fd5b5061007461012e565b005b34801561008257600080fd5b506000546001600160a01b031660405161009c91906102fa565b60405180910390f35b6100746100b3366004610457565b610142565b3480156100c457600080fd5b506101016040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60405161009c9190610513565b34801561011a57600080fd5b50610074610129366004610524565b6101ca565b61013661022a565b6101406000610270565b565b61014a61022a565b6040517f4f1ef2860000000000000000000000000000000000000000000000000000000081526001600160a01b03841690634f1ef2869034906101939086908690600401610543565b6000604051808303818588803b1580156101ac57600080fd5b505af11580156101c0573d6000803e3d6000fd5b5050505050505050565b6101d261022a565b6001600160a01b03811661021e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b60405180910390fd5b61022781610270565b50565b6000546001600160a01b0316331461014057336040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161021591906102fa565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160a01b0382165b92915050565b6102f4816102d8565b82525050565b602081016102e582846102eb565b60006102e5826102d8565b61031c81610308565b811461022757600080fd5b80356102e581610313565b61031c816102d8565b80356102e581610332565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff8211171561039b5761039b610346565b6040525050565b60006103ad60405190565b90506103b98282610375565b919050565b600067ffffffffffffffff8211156103d8576103d8610346565b601f19601f83011660200192915050565b82818337506000910152565b6000610408610403846103be565b6103a2565b905082815283838301111561041f5761041f600080fd5b61042d8360208301846103e9565b9392505050565b600082601f83011261044857610448600080fd5b61042d838335602085016103f5565b60008060006060848603121561046f5761046f600080fd5b6104798585610327565b9250610488856020860161033b565b9150604084013567ffffffffffffffff8111156104a7576104a7600080fd5b6104b386828701610434565b9150509250925092565b60005b838110156104d85781810151838201526020016104c0565b50506000910152565b60006104eb825190565b8084526020840193506105028185602086016104bd565b601f01601f19169290920192915050565b6020808252810161042d81846104e1565b60006020828403121561053957610539600080fd5b61042d838361033b565b6040810161055182856102eb565b818103602083015261056381846104e1565b94935050505056fea264697066735822122096c3a562b6861bd964d97d99d95931f7343ac03c64bc04aeab6287f6e42e45eb64736f6c634300081c0033b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103bd64e14789a915ea657e42f2dbf0b973227708fa64b58766287637985d1ade69", } // SystemDeployerABI is the input ABI used to generate the binding from. diff --git a/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go b/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go index 0e7169a760..eccf52712c 100644 --- a/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go +++ b/contracts/generated/TransactionPostProcessor/TransactionPostProcessor.go @@ -46,7 +46,7 @@ type StructsTransaction struct { // TransactionPostProcessorMetaData contains all meta data concerning the TransactionPostProcessor contract. var TransactionPostProcessorMetaData = &bind.MetaData{ ABI: "[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"transactionsLength\",\"type\":\"uint256\"}],\"name\":\"TransactionsConverted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EOA_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"callbackAddress\",\"type\":\"address\"}],\"name\":\"addOnBlockEndCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"eoaAdmin\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"txType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"successful\",\"type\":\"bool\"},{\"internalType\":\"uint64\",\"name\":\"gasUsed\",\"type\":\"uint64\"}],\"internalType\":\"structStructs.Transaction[]\",\"name\":\"transactions\",\"type\":\"tuple[]\"}],\"name\":\"onBlock\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}]", - Bin: "0x6080604052348015600f57600080fd5b50610e178061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc366004610835565b610265565b6040516100ee9190610865565b60405180910390f35b61011a610105366004610884565b60009081526020819052604090206001015490565b6040516100ee91906108a9565b61013a6101353660046108dc565b6102fe565b005b61013a61014a3660046108dc565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a610184366004610966565b61037a565b6100e16101973660046108dc565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d63660046109ae565b6104ca565b61013a6101e93660046108dc565b61063a565b61013a6101fc3660046109ae565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6000828152602081905260409020600101546103198161065f565b610323838361066c565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103758282610716565b505050565b60006103876001306109e3565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a3a565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a7c565b6040517f3357352afe45ddda257f56623a512152c527b6f11555ec2fb2fdbbe72ddece419061040b9084906108a9565b60405180910390a160005b6001548110156103235760006001828154811061043557610435610a8c565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af9061048c9088908890600401610d83565b600060405180830381600087803b1580156104a657600080fd5b505af11580156104ba573d6000803e3d6000fd5b5050505050806001019050610416565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156105155750825b905060008267ffffffffffffffff1660011480156105325750303b155b905081158015610540575080155b15610577576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156105ab57845468ff00000000000000001916680100000000000000001785555b6105b660008761066c565b506105e17ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a5988761066c565b50831561063257845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29061062990600190610db8565b60405180910390a15b505050505050565b6000828152602081905260409020600101546106558161065f565b6103238383610716565b6106698133610799565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1661070e576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556106c63390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff161561070e576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107f75780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610dc6565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461066957600080fd5b80356102f8816107fb565b60006020828403121561084a5761084a600080fd5b610854838361082a565b9392505050565b8015155b82525050565b602081016102f8828461085b565b8061081f565b80356102f881610873565b60006020828403121561089957610899600080fd5b6108548383610879565b8061085f565b602081016102f882846108a3565b60006001600160a01b0382166102f8565b61081f816108b7565b80356102f8816108c8565b600080604083850312156108f2576108f2600080fd5b6108fc8484610879565b915061090b84602085016108d1565b90509250929050565b60008083601f84011261092957610929600080fd5b50813567ffffffffffffffff81111561094457610944600080fd5b60208301915083602082028301111561095f5761095f600080fd5b9250929050565b6000806020838503121561097c5761097c600080fd5b823567ffffffffffffffff81111561099657610996600080fd5b6109a285828601610914565b92509250509250929050565b6000602082840312156109c3576109c3600080fd5b61085483836108d1565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f86109cd565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f881610a06565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e7665727400000000000081529050610a34565b602080825281016102f881610a4a565b634e487b7160e01b600052603260045260246000fd5b60ff811661081f565b80356102f881610aa2565b5060006102f86020830183610aab565b60ff811661085f565b5060006102f86020830183610879565b5060006102f860208301836108d1565b61085f816108b7565b6000808335601e1936859003018112610b1357610b13600080fd5b830160208101925035905067ffffffffffffffff811115610b3657610b36600080fd5b3681900382131561095f5761095f600080fd5b82818337506000910152565b818352602083019250610b69828483610b49565b50601f01601f19160190565b80151561081f565b80356102f881610b75565b5060006102f86020830183610b7d565b67ffffffffffffffff811661081f565b80356102f881610b98565b5060006102f86020830183610ba8565b67ffffffffffffffff811661085f565b60006101408301610be48380610ab6565b610bee8582610ac6565b50610bfc6020840184610acf565b610c0960208601826108a3565b50610c176040840184610acf565b610c2460408601826108a3565b50610c326060840184610acf565b610c3f60608601826108a3565b50610c4d6080840184610adf565b610c5a6080860182610aef565b50610c6860a0840184610acf565b610c7560a08601826108a3565b50610c8360c0840184610af8565b85830360c0870152610c96838284610b55565b92505050610ca760e0840184610adf565b610cb460e0860182610aef565b50610cc3610100840184610b88565b610cd161010086018261085b565b50610ce0610120840184610bb3565b610cee610120860182610bc3565b509392505050565b60006108548383610bd3565b6000823561013e1936849003018112610d1d57610d1d600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d76578484038952610d548284610d02565b610d5e8582610cf6565b94505060208201602099909901989150600101610d3d565b5091979650505050505050565b60208082528101610d95818486610d26565b949350505050565b600067ffffffffffffffff82166102f8565b61085f81610d9d565b602081016102f88284610daf565b60408101610dd48285610aef565b61085460208301846108a356fea2646970667358221220c3cf3852209ad93e14f2c95a1ee81360a00fe52f5b9883259bae9ca4c33a0aa064736f6c634300081c0033", + Bin: "0x6080604052348015600f57600080fd5b50610ddf8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c806364c55a9d11610081578063c4d66de81161005b578063c4d66de8146101c8578063d547741f146101db578063ee546fd8146101ee57600080fd5b806364c55a9d1461017657806391d1485414610189578063a217fddf146101c057600080fd5b80632f2ff15d116100b25780632f2ff15d1461012757806336568abe1461013c578063508a50f41461014f57600080fd5b806301ffc9a7146100ce578063248a9ca3146100f7575b600080fd5b6100e16100dc3660046107fd565b610265565b6040516100ee919061082d565b60405180910390f35b61011a61010536600461084c565b60009081526020819052604090206001015490565b6040516100ee9190610871565b61013a6101353660046108a4565b6102fe565b005b61013a61014a3660046108a4565b610329565b61011a7ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59881565b61013a61018436600461092e565b61037a565b6100e16101973660046108a4565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61011a600081565b61013a6101d6366004610976565b610492565b61013a6101e93660046108a4565b610602565b61013a6101fc366004610976565b6001805480820182556000919091527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806102f857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60008281526020819052604090206001015461031981610627565b6103238383610634565b50505050565b6001600160a01b038116331461036b576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61037582826106de565b505050565b60006103876001306109ab565b9050336001600160a01b038216146103ba5760405162461bcd60e51b81526004016103b190610a02565b60405180910390fd5b60008290036103db5760405162461bcd60e51b81526004016103b190610a44565b60005b600154811015610323576000600182815481106103fd576103fd610a54565b6000918252602090912001546040517f9f9976af0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911691508190639f9976af906104549088908890600401610d4b565b600060405180830381600087803b15801561046e57600080fd5b505af1158015610482573d6000803e3d6000fd5b50505050508060010190506103de565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104dd5750825b905060008267ffffffffffffffff1660011480156104fa5750303b155b905081158015610508575080155b1561053f576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561057357845468ff00000000000000001916680100000000000000001785555b61057e600087610634565b506105a97ff16bb8781ef1311f8fe06747bcbe481e695502acdcb0cb8c03aa03899e39a59887610634565b5083156105fa57845468ff0000000000000000191685556040517fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906105f190600190610d80565b60405180910390a15b505050505050565b60008281526020819052604090206001015461061d81610627565b61032383836106de565b6106318133610761565b50565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166106d6576000838152602081815260408083206001600160a01b03861684529091529020805460ff1916600117905561068e3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016102f8565b5060006102f8565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16156106d6576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016102f8565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166107bf5780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016103b1929190610d8e565b5050565b7fffffffff0000000000000000000000000000000000000000000000000000000081165b811461063157600080fd5b80356102f8816107c3565b60006020828403121561081257610812600080fd5b61081c83836107f2565b9392505050565b8015155b82525050565b602081016102f88284610823565b806107e7565b80356102f88161083b565b60006020828403121561086157610861600080fd5b61081c8383610841565b80610827565b602081016102f8828461086b565b60006001600160a01b0382166102f8565b6107e78161087f565b80356102f881610890565b600080604083850312156108ba576108ba600080fd5b6108c48484610841565b91506108d38460208501610899565b90509250929050565b60008083601f8401126108f1576108f1600080fd5b50813567ffffffffffffffff81111561090c5761090c600080fd5b60208301915083602082028301111561092757610927600080fd5b9250929050565b6000806020838503121561094457610944600080fd5b823567ffffffffffffffff81111561095e5761095e600080fd5b61096a858286016108dc565b92509250509250929050565b60006020828403121561098b5761098b600080fd5b61081c8383610899565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b039182169190811690828203908111156102f8576102f8610995565b60088152602081017f4e6f742073656c66000000000000000000000000000000000000000000000000815290505b60200190565b602080825281016102f8816109ce565b601a8152602081017f4e6f207472616e73616374696f6e7320746f20636f6e76657274000000000000815290506109fc565b602080825281016102f881610a12565b634e487b7160e01b600052603260045260246000fd5b60ff81166107e7565b80356102f881610a6a565b5060006102f86020830183610a73565b60ff8116610827565b5060006102f86020830183610841565b5060006102f86020830183610899565b6108278161087f565b6000808335601e1936859003018112610adb57610adb600080fd5b830160208101925035905067ffffffffffffffff811115610afe57610afe600080fd5b3681900382131561092757610927600080fd5b82818337506000910152565b818352602083019250610b31828483610b11565b50601f01601f19160190565b8015156107e7565b80356102f881610b3d565b5060006102f86020830183610b45565b67ffffffffffffffff81166107e7565b80356102f881610b60565b5060006102f86020830183610b70565b67ffffffffffffffff8116610827565b60006101408301610bac8380610a7e565b610bb68582610a8e565b50610bc46020840184610a97565b610bd1602086018261086b565b50610bdf6040840184610a97565b610bec604086018261086b565b50610bfa6060840184610a97565b610c07606086018261086b565b50610c156080840184610aa7565b610c226080860182610ab7565b50610c3060a0840184610a97565b610c3d60a086018261086b565b50610c4b60c0840184610ac0565b85830360c0870152610c5e838284610b1d565b92505050610c6f60e0840184610aa7565b610c7c60e0860182610ab7565b50610c8b610100840184610b50565b610c99610100860182610823565b50610ca8610120840184610b7b565b610cb6610120860182610b8b565b509392505050565b600061081c8383610b9b565b6000823561013e1936849003018112610ce557610ce5600080fd5b90910192915050565b818352602083019250600083602084028101838060005b87811015610d3e578484038952610d1c8284610cca565b610d268582610cbe565b94505060208201602099909901989150600101610d05565b5091979650505050505050565b60208082528101610d5d818486610cee565b949350505050565b600067ffffffffffffffff82166102f8565b61082781610d65565b602081016102f88284610d77565b60408101610d9c8285610ab7565b61081c602083018461086b56fea2646970667358221220000c7add8ef77f2ce3e54738e1a6216052e3c7d3dfd30f31adc394e073238b4d64736f6c634300081c0033", } // TransactionPostProcessorABI is the input ABI used to generate the binding from. diff --git a/contracts/src/system/TransactionPostProcessor.sol b/contracts/src/system/TransactionPostProcessor.sol index c271f68788..89f9a0ed4b 100644 --- a/contracts/src/system/TransactionPostProcessor.sol +++ b/contracts/src/system/TransactionPostProcessor.sol @@ -42,7 +42,7 @@ contract TransactionPostProcessor is Initializable, AccessControl{ revert("No transactions to convert"); } - emit TransactionsConverted(transactions.length); +// emit TransactionsConverted(transactions.length); for (uint256 i = 0; i < onBlockEndListeners.length; ++i) { OnBlockEndCallback callback = onBlockEndListeners[i];