diff --git a/publish/deployed/kovan-ovm/config.json b/publish/deployed/kovan-ovm/config.json index e273a64a5f..7ec3cfaeaf 100644 --- a/publish/deployed/kovan-ovm/config.json +++ b/publish/deployed/kovan-ovm/config.json @@ -62,9 +62,6 @@ "SynthetixEscrow": { "deploy": false }, - "RewardEscrow": { - "deploy": false - }, "RewardsDistribution": { "deploy": false }, diff --git a/publish/deployed/kovan-ovm/deployment.json b/publish/deployed/kovan-ovm/deployment.json index 7bab2aaae2..833c02c959 100644 --- a/publish/deployed/kovan-ovm/deployment.json +++ b/publish/deployed/kovan-ovm/deployment.json @@ -6822,679 +6822,6 @@ "version": 1 } }, - "RewardEscrow": { - "bytecode": "608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de5780639b217f9011610097578063d0cc82e311610071578063d0cc82e31461045d578063da7bd3e914610465578063ee1d036c14610491578063fec9f9da146104bd57610173565b80639b217f90146103fd578063ae2e933b14610429578063b5ddb9c71461043157610173565b806370a082311461039157806371e780f3146103b7578063759b5225146103bf57806379ba5097146103c75780638da5cb5b146103cf57806397f46527146103d757610173565b8063326a3cfb11610130578063326a3cfb146102ab578063449d0eb1146102d1578063458efde31461030d57806345e5441f1461031557806353a47bb7146103475780636b3905c41461036b57610173565b80631627540c1461017857806319db2228146101a057806319e740c0146101c6578063204b676a146101fe578063227d517a146102245780632f5bb6611461024a575b600080fd5b61019e6004803603602081101561018e57600080fd5b50356001600160a01b03166104e3565b005b61019e600480360360208110156101b657600080fd5b50356001600160a01b031661053f565b6101ec600480360360208110156101dc57600080fd5b50356001600160a01b031661059b565b60408051918252519081900360200190f35b6101ec6004803603602081101561021457600080fd5b50356001600160a01b03166105dd565b6101ec6004803603602081101561023a57600080fd5b50356001600160a01b03166105f8565b6102706004803603602081101561026057600080fd5b50356001600160a01b031661060a565b6040518082600260200280838360005b83811015610298578181015183820152602001610280565b5050505090500191505060405180910390f35b6101ec600480360360208110156102c157600080fd5b50356001600160a01b031661065b565b6102f7600480360360208110156102e757600080fd5b50356001600160a01b031661066d565b6040518151815280826141008083836020610280565b61019e6106f3565b6101ec6004803603606081101561032b57600080fd5b506001600160a01b0381351690602081013590604001356108dc565b61034f610918565b604080516001600160a01b039092168252519081900360200190f35b6101ec6004803603602081101561038157600080fd5b50356001600160a01b0316610927565b6101ec600480360360208110156103a757600080fd5b50356001600160a01b0316610940565b6101ec61095b565b61034f610961565b61019e610970565b61034f610a2c565b6101ec600480360360208110156103ed57600080fd5b50356001600160a01b0316610a3b565b6101ec6004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a4d565b61034f610a68565b61019e6004803603604081101561044757600080fd5b506001600160a01b038135169060200135610a77565b6101ec610ad0565b6102706004803603604081101561047b57600080fd5b506001600160a01b038135169060200135610ad6565b6101ec600480360360408110156104a757600080fd5b506001600160a01b038135169060200135610b45565b61019e600480360360208110156104d357600080fd5b50356001600160a01b0316610b58565b6104eb610bb4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610547610bb4565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb62959181900360200190a150565b6000806105a7836105dd565b905060005b818110156105d4576105be8482610a4d565b156105cc5791506105d89050565b6001016105ac565b5090505b919050565b6001600160a01b031660009081526004602052604090205490565b60066020526000908152604090205481565b610612610f98565b600061061d8361059b565b9050610628836105dd565b81141561064a57505060408051808201909152600080825260208201526105d8565b6106548382610ad6565b9392505050565b60056020526000908152604090205481565b610675610fb6565b61067d610fb6565b6000610688846105dd565b905060005b818110156106ea5761069d610f98565b6106a78683610ad6565b8051909150846002840261020881106106bc57fe5b60200201528060016020020151848360020260010161020881106106dc57fe5b60200201525060010161068d565b50909392505050565b60006106fe336105dd565b90506000805b828110156107a35760006107183383610a4d565b90504281111561072857506107a3565b60006107343384610b45565b905080156107995760408051808201825260008082526020808301829052338252600490529190912080548590811061076957fe5b9060005260206000209060020201906002610785929190610fd6565b50610796848263ffffffff610bff16565b93505b5050600101610704565b5080156108d8576007546107bd908263ffffffff610c5916565b600755336000908152600560205260409020546107e0908263ffffffff610c5916565b3360009081526005602090815260408083209390935560069052205461080c908263ffffffff610bff16565b33600081815260066020908152604080832094909455600254845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b600460205282600052604060002082815481106108f557fe5b9060005260206000209060020201816002811061090e57fe5b0154925083915050565b6001546001600160a01b031681565b60006109328261060a565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b60075481565b6002546001600160a01b031681565b6001546001600160a01b031633146109b95760405162461bcd60e51b81526004018080602001828103825260358152602001806110656035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000610a468261060a565b6001610935565b6000610a598383610ad6565b60005b60200201519392505050565b6003546001600160a01b031681565b6003546001600160a01b0316331480610ac15760405162461bcd60e51b81526004018080602001828103825260328152602001806111476032913960400191505060405180910390fd5b610acb8383610cb6565b505050565b61010481565b610ade610f98565b6001600160a01b0383166000908152600460205260409020805483908110610b0257fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311610b25575050505050905092915050565b6000610b518383610ad6565b6001610a5c565b610b60610bb4565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f46e9c68bd7831071bdd478f1ae4c4a52463961a9d620383a0a121dbfc0e0f06d9181900360200190a150565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040180806020018281038252602f815260200180611118602f913960400191505060405180910390fd5b565b600082820183811015610654576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115610cb0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b80610d08576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b600754610d1b908263ffffffff610bff16565b600755600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610d6957600080fd5b505afa158015610d7d573d6000803e3d6000fd5b505050506040513d6020811015610d9357600080fd5b50516007541115610dd55760405162461bcd60e51b81526004018080602001828103825260478152602001806110d16047913960600191505060405180910390fd5b6001600160a01b038216600090815260046020526040902054610104811115610e45576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b6301dfe200420181610e71576001600160a01b0384166000908152600560205260409020839055610efe565b80610e7f8560018503610a4d565b10610ebb5760405162461bcd60e51b815260040180806020018281038252603781526020018061109a6037913960400191505060405180910390fd5b6001600160a01b038416600090815260056020526040902054610ee4908463ffffffff610bff16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925284825281830187905280546001810180835591855292909320610f4d9260029081029091019190611019565b5050604080514281526020810185905281516001600160a01b038716927fedd34dc5a5ea12bd847909801d0660781b50e26c7f4cec3c7b308f1ea410635c928290030190a250505050565b60405180604001604052806002906020820280388339509192915050565b604051806141000160405280610208906020820280388339509192915050565b8260028101928215611009579160200282015b82811115611009578251829060ff16905591602001919060010190610fe9565b50611015929150611047565b5090565b8260028101928215611009579160200282015b8281111561100957825182559160200191906001019061102c565b61106191905b80821115611015576000815560010161104d565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c792074686520466565506f6f6c20636f6e7472616374732063616e20706572666f726d207468697320616374696f6ea265627a7a72315820dd90399d3064885cbd946916e8eaa2b6d8566950910159c3a142bedf8dba34f064736f6c63430005100032", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "contract ISynthetix", - "name": "_synthetix", - "type": "address" - }, - { - "internalType": "contract IFeePool", - "name": "_feePool", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor", - "signature": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newFeePool", - "type": "address" - } - ], - "name": "FeePoolUpdated", - "type": "event", - "signature": "0x6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb6295" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "oldOwner", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnerChanged", - "type": "event", - "signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnerNominated", - "type": "event", - "signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newSynthetix", - "type": "address" - } - ], - "name": "SynthetixUpdated", - "type": "event", - "signature": "0x46e9c68bd7831071bdd478f1ae4c4a52463961a9d620383a0a121dbfc0e0f06d" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "time", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Vested", - "type": "event", - "signature": "0xfbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "time", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "VestingEntryCreated", - "type": "event", - "signature": "0xedd34dc5a5ea12bd847909801d0660781b50e26c7f4cec3c7b308f1ea410635c" - }, - { - "constant": true, - "inputs": [], - "name": "MAX_VESTING_ENTRIES", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0xd0cc82e3" - }, - { - "constant": false, - "inputs": [], - "name": "acceptOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0x79ba5097" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "quantity", - "type": "uint256" - } - ], - "name": "appendVestingEntry", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0xb5ddb9c7" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x70a08231" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "checkAccountSchedule", - "outputs": [ - { - "internalType": "uint256[520]", - "name": "", - "type": "uint256[520]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x449d0eb1" - }, - { - "constant": true, - "inputs": [], - "name": "feePool", - "outputs": [ - { - "internalType": "contract IFeePool", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0xae2e933b" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getNextVestingEntry", - "outputs": [ - { - "internalType": "uint256[2]", - "name": "", - "type": "uint256[2]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x2f5bb661" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getNextVestingIndex", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x19e740c0" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getNextVestingQuantity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x97f46527" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "getNextVestingTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x6b3905c4" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getVestingQuantity", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0xee1d036c" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getVestingScheduleEntry", - "outputs": [ - { - "internalType": "uint256[2]", - "name": "", - "type": "uint256[2]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0xda7bd3e9" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - } - ], - "name": "getVestingTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x9b217f90" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_owner", - "type": "address" - } - ], - "name": "nominateNewOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0x1627540c" - }, - { - "constant": true, - "inputs": [], - "name": "nominatedOwner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x53a47bb7" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "numVestingEntries", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x204b676a" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x8da5cb5b" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IFeePool", - "name": "_feePool", - "type": "address" - } - ], - "name": "setFeePool", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0x19db2228" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract ISynthetix", - "name": "_synthetix", - "type": "address" - } - ], - "name": "setSynthetix", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0xfec9f9da" - }, - { - "constant": true, - "inputs": [], - "name": "synthetix", - "outputs": [ - { - "internalType": "contract ISynthetix", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x759b5225" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "totalEscrowedAccountBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x326a3cfb" - }, - { - "constant": true, - "inputs": [], - "name": "totalEscrowedBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x71e780f3" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "totalVestedAccountBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x227d517a" - }, - { - "constant": false, - "inputs": [], - "name": "vest", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function", - "signature": "0x458efde3" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "vestingSchedules", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function", - "signature": "0x45e5441f" - } - ], - "source": { - "keccak256": "0x0a23762f25143cc09e9e45c41872fbaaf6c35ff873a3cc969674c6d5be3c1d60", - "urls": [ - "bzz-raw://46fed4d9925e8b9ac86add563a3ee674e5af90df05e5eabe9108d60a15f3f00b", - "dweb:/ipfs/QmR8sbyXVz6KqD4Fd1bFf76Pkrp7TML6QXSaCgQmom99eL" - ] - }, - "metadata": { - "compiler": { - "version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d" - }, - "language": "Solidity", - "settings": { - "compilationTarget": { - "RewardEscrow.sol": "RewardEscrow" - }, - "evmVersion": "istanbul", - "libraries": {}, - "optimizer": { - "enabled": true, - "runs": 200 - }, - "remappings": [] - }, - "sources": { - "RewardEscrow.sol": { - "keccak256": "0x0a23762f25143cc09e9e45c41872fbaaf6c35ff873a3cc969674c6d5be3c1d60", - "urls": [ - "bzz-raw://46fed4d9925e8b9ac86add563a3ee674e5af90df05e5eabe9108d60a15f3f00b", - "dweb:/ipfs/QmR8sbyXVz6KqD4Fd1bFf76Pkrp7TML6QXSaCgQmom99eL" - ] - } - }, - "version": 1 - } - }, "ImportableRewardEscrowV2": { "bytecode": "60806040526303bfc400600c62000015620001a6565b50506224ea00600d62000027620001a6565b505062093a80600e62000039620001a6565b50503480156200005357600080620000506200020a565b50505b506040516200421338038062004213833981016040819052620000769162000322565b8181806224ea00836001600160a01b038116620000bb5760405162461bcd60e51b8152600401620000a790620003e9565b60405180910390620000b86200020a565b50505b806000600181620000cb62000277565b816001600160a01b0302191690836001600160a01b0316021790620000ef620001a6565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c60008260405162000126929190620003c3565b60405180910390a150805a6200013b620002c4565b0180600262000149620001a6565b5050505080600360006101000a816200016162000277565b816001600160a01b0302191690836001600160a01b031602179062000185620001a6565b5050505060016007819062000199620001a6565b505050505050506200044c565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60005b60408110156200020557600082820152602001620001ec565b505050565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200024457808601518282016040015260200162000227565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020620001ec565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020620001ec565b6000815190506200031c816200042a565b92915050565b6000806040838503121562000341576000806200033e6200020a565b50505b60006200034f85856200030b565b925050602062000362858286016200030b565b9150509250929050565b620003778162000416565b82525050565b620003778162000404565b600062000397601983620003fb565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620003d382856200036c565b620003e260208301846200037d565b9392505050565b602080825281016200031c8162000388565b90815260200190565b60006001600160a01b0382166200031c565b60006200031c8260006200031c8262000404565b620004358162000404565b81146200044957600080620002056200020a565b50565b613db7806200045c6000396000f3fe6080604052348015610019576000806100166128ad565b50505b506004361061025c5760003560e01c80636dc05bd31161014f57806380d46f58116100cc578063ae58254911610090578063ae582549146104d3578063b95375bd146104e6578063cd7b43dd146104f9578063e6b2cf6c1461050c578063eac6248914610514578063f0b882ba146105345761025c565b806380d46f581461047a578063899ffef41461049b5780638da5cb5b146104b0578063910a326d146104b8578063a0416ed3146104c05761025c565b8063773ab39f11610113578063773ab39f146104195780637839b92f146104395780637993e6991461044c57806379ba50971461045f5780637cc1d756146104675761025c565b80636dc05bd3146103d057806370a08231146103e357806371e780f3146103f657806373307e40146103fe57806374185360146104115761025c565b806330104c5f116101dd57806345626bd6116101a157806345626bd61461037757806346ba2d901461039857806353a47bb7146103a05780635eb8cf25146103b55780636154c343146103bd5761025c565b806330104c5f14610323578063326a3cfb1461033657806334c7fec91461034957806337088ffc1461035c5780634525aabc146103645761025c565b8063178c565511610224578063178c5655146102da5780631bb47b44146102e2578063204b676a146102f5578063227d517a146103085780632af64bd31461031b5761025c565b8063018c6c551461026a57806304f3bcec1461027f578063056629861461029d5780630fcdefb7146102b25780631627540c146102c7575b6000806102676128ad565b50505b61027d610278366004613104565b610547565b005b610287610598565b6040516102949190613afc565b60405180910390f35b6102a56105b7565b6040516102949190613ab2565b6102ba6105ec565b6040516102949190613ac0565b61027d6102d5366004612dda565b6105f9565b61027d610662565b61027d6102f0366004612f4b565b6106d1565b6102ba610303366004612dda565b610733565b6102ba610316366004612dda565b61075b565b6102a5610773565b6102ba610331366004612e8f565b6108f4565b6102ba610344366004612dda565b610977565b61027d610357366004613063565b61098f565b6102ba610a99565b61027d610372366004613104565b610aa3565b61038a610385366004612e8f565b610ae9565b604051610294929190613ca7565b6102ba610b34565b6103a8610b3e565b604051610294919061399c565b6102ba610b4a565b61038a6103cb366004612e8f565b610b54565b6102ba6103de366004612e28565b610be1565b6102ba6103f1366004612dda565b610cab565b6102ba610ccb565b6103a861040c366004612dda565b610cd5565b61027d610cef565b61042c610427366004612f4b565b610e86565b6040516102949190613a90565b61027d610447366004612dda565b611074565b61027d61045a366004613104565b61107f565b61027d611100565b61027d610475366004612dda565b61125b565b61048d610488366004612e28565b611465565b604051610294929190613c3b565b6104a3611479565b6040516102949190613a7f565b6103a86114f9565b6102ba611504565b61027d6104ce366004612f4b565b61150e565b6102ba6104e1366004612e8f565b611670565b61027d6104f4366004612fa1565b6116a6565b61027d610507366004612ed2565b6116b6565b6102ba6118ee565b610527610522366004612f4b565b6118f8565b6040516102949190613aa1565b61027d610542366004612e28565b611a22565b61054f611f10565b8080600d61055b612918565b5050507fe829efae5d8a2f7163f46c23a8190bf14625c1e446561ca0f5cf279ab7c8015e8160405161058d9190613ac0565b60405180910390a150565b600060036105a4612975565b906101000a90046001600160a01b031681565b60005a6105c26129c1565b6105e5600e6105cf612975565b600f6105d9612975565b9063ffffffff611f7416565b1190505b90565b600f6105f6612975565b81565b610601611f10565b806001808061060e612975565b816001600160a01b0302191690836001600160a01b0316021790610630612918565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce228160405161058d919061399c565b61066a611f10565b5a6106736129c1565b80600f61067e612918565b5050507fceade2b9bc02350b17075c94bb699508b89ed2752f501ea42024b1bb5fd34445600f6106ac612975565b6106b9600e6105cf612975565b6040516106c7929190613c5b565b60405180910390a1565b6106d9611fb1565b6001600160a01b03165a6106eb612a07565b6001600160a01b0316146107235760405162461bcd60e51b815260040161071190613c0b565b604051809103906107206128ad565b50505b61072e838383611fcb565b505050565b6001600160a01b038116600090815260066020526040812080610754612975565b9392505050565b600960205280600052604060002090506105f6612975565b6000606061077f611479565b905060005b81518110156108eb57600082828151811061079b57fe5b602002602001015160008181526004602052909150604090206000906107bf612975565b6001600160a01b036101009290920a900416600060036107dd612975565b906101000a90046001600160a01b03166001600160a01b03166321f8a721836040518263ffffffff1660e01b81526004016108189190613ac0565b602060405180830381868061082b612a4d565b1580156108405760008061083d6128ad565b50505b505a61084a612a99565b5050505050158015610869573d6000803e3d60006108666128ad565b50505b50505050604051601f3d908101601f1916820160405261088c9190810190612e01565b6001600160a01b03161415806108d1575060008181526004602052604081206000906108b6612975565b906101000a90046001600160a01b03166001600160a01b0316145b156108e257600093505050506105e9565b50600101610784565b50600191505090565b60006108fe612b84565b6001600160a01b038416600090815260056020526040902060008481526020919091526040902060405160408082019052908160008261093c612975565b6001600160401b036101009290920a90041681526020016001820161095f612975565b905250905061096d8161234f565b9150505b92915050565b600860205280600052604060002090506105f6612975565b6000805b82811015610a80576000600560005a6109aa612a07565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008686858181106109d857fe5b9050602002013581526020019081526020016000209050806001016109fb612975565b15610a77576000610a4882604051604080820190529081600082610a1d612975565b6001600160401b036101009290920a900416815260200160018201610a40612975565b90525061234f565b90508015610a635760008060018401610a5f612918565b5050505b610a73848263ffffffff611f7416565b9350505b50600101610993565b50801561072e5761072e5a610a93612a07565b82612388565b600d6105f6612975565b610aab611f10565b8080600c610ab7612918565b5050507f6b92bd20c4b2e6861047ba7209ddc78d538419aae187d0df46716b827b8997a48160405161058d9190613ac0565b600560205281600052604060002060205280600052604060002091506000905081610b12612975565b906101000a90046001600160401b03169080600101610b2f612975565b905082565b60026105f6612975565b600060016105a4612975565b600c6105f6612975565b6001600160a01b038216600090815260056020528060408120600084815260209190915260409020600090610b87612975565b906101000a90046001600160401b0316915060056000856001600160a01b03166001600160a01b03168152602001908152602001600020600084815260209190915260409020600101610bd8612975565b90509250929050565b6000805b82811015610ca357610bf5612b84565b6001600160a01b03861660009081526005602052604090206000868685818110610c1b57fe5b905060200201358152602001908152602001600020604051604080820190529081600082610c47612975565b6001600160401b036101009290920a900416815260200160018201610c6a612975565b9052509050602081015115610c9a576000610c848261234f565b9050610c96848263ffffffff611f7416565b9350505b50600101610be5565b509392505050565b6001600160a01b0381166000908152600860205260408120610971612975565b600b6105f6612975565b600a602052806000526040600020600091506105a4612975565b6060610cf9611479565b905060005b8151811015610e82576000828281518110610d1557fe5b602002602001015190506000806003610d2c612975565b906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610d5c9190613991565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610d88929190613adc565b6020604051808303818680610d9b612a4d565b158015610db057600080610dad6128ad565b50505b505a610dba612a99565b5050505050158015610dd9573d6000803e3d6000610dd66128ad565b50505b50505050604051601f3d908101601f19168201604052610dfc9190810190612e01565b60008381526004602052909150819060409020600181610e1a612975565b816001600160a01b0302191690836001600160a01b0316021790610e3c612918565b5050507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa688282604051610e70929190613ace565b60405180910390a15050600101610cfe565b5050565b6060828201838111610ed6576000604051908082528060200260200182016040528015610ecd57816020015b610eba612b9b565b815260200190600190039081610eb25790505b50915050610754565b6001600160a01b038516600090815260066020526040902080610ef7612975565b9050811115610f25576001600160a01b038516600090815260066020526040902080610f21612975565b9150505b838103606081604051908082528060200260200182016040528015610f6457816020015b610f51612b9b565b815260200190600190039081610f495790505b50905060005b82811015611069576001600160a01b038816600090815260066020526040812088830181610f96612975565b8110610f9e57fe5b90600052602060002001610fb0612975565b9050610fba612b84565b6001600160a01b038a166000908152600560205260409020600083815260209190915260409020604051604080820190529081600082610ff8612975565b6001600160401b036101009290920a90041681526020016001820161101b612975565b9052509050604051606081016040528082516001600160401b031681526020018260200151815260200183905284848151811061105457fe5b60209081029190910101525050600101610f6a565b509695505050505050565b61107c6124d9565b50565b611087611f10565b600d611091612975565b8111156110c25760405162461bcd60e51b81526004016110b090613bfb565b604051809103906110bf6128ad565b50505b8080600e6110ce612918565b5050507f723c43349da7aeae47190396f2e2fbe6bedb46b9e9705bc5b908d65bc7a1e0e68160405161058d9190613ac0565b6000600161110c612975565b906101000a90046001600160a01b03166001600160a01b03165a61112e612a07565b6001600160a01b0316146111665760405162461bcd60e51b815260040161115490613b1b565b604051809103906111636128ad565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c600080611192612975565b906101000a90046001600160a01b031660016000906111af612975565b906101000a90046001600160a01b03166040516111cd929190613a3b565b60405180910390a1600060016111e1612975565b906101000a90046001600160a01b03166000806101000a81611201612975565b816001600160a01b0302191690836001600160a01b0316021790611223612918565b5050506000600160006101000a81611239612975565b816001600160a01b0302191690836001600160a01b031602179061072e612918565b5a611264612a07565b6001600160a01b0316816001600160a01b031614156112a75760405162461bcd60e51b815260040161129590613bcb565b604051809103906112a46128ad565b50505b6112af6105b7565b6112dd5760405162461bcd60e51b81526004016112cb90613bab565b604051809103906112da6128ad565b50505b6112e56124f1565b6001600160a01b031663d37c4d8b5a6112fc612a07565b6040518263ffffffff1660e01b815260040161131891906139da565b602060405180830381868061132b612a4d565b1580156113405760008061133d6128ad565b50505b505a61134a612a99565b5050505050158015611369573d6000803e3d60006113666128ad565b50505b50505050604051601f3d908101601f1916820160405261138c919081019061312b565b156113bb5760405162461bcd60e51b81526004016113a990613c2b565b604051809103906113b86128ad565b50505b80600a60005a6113c9612a07565b6001600160a01b03166001600160a01b031681526020019081526020016000206001816113f4612975565b816001600160a01b0302191690836001600160a01b0316021790611416612918565b5050505a611422612a07565b6001600160a01b03167fcf51776bb16e5780edcca2e64a9ba8a9c7d5d00a6699cbd7606e465361ba48528260405161145a919061399c565b60405180910390a250565b600060606114716124d9565b935093915050565b606080611484612505565b9050606060016040519080825280602002602001820160405280156114b3578160200160208202803883390190505b5090507453796e746865746978427269646765546f4261736560581b816000815181106114dc57fe5b6020026020010181815250506114f282826125a5565b9250505090565b6000806105a4612975565b600e6105f6612975565b6001600160a01b0383166115465760405162461bcd60e51b815260040161153490613b4b565b604051809103906115436128ad565b50505b61154e612661565b6001600160a01b03166323b872dd5a611565612a07565b5a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b60408110156115bb576000828201526020016115a4565b505050856040518463ffffffff1660e01b81526004016115dd939291906139aa565b602060405180830381600087806115f2612a4d565b158015611607576000806116046128ad565b50505b505a611611612bba565b505050505050158015611631573d6000803e3d600061162e6128ad565b50505b50505050604051601f3d908101601f1916820160405261165491908101906130b6565b6107235760405162461bcd60e51b815260040161071190613bbb565b60066020528160005260406000208181611688612975565b811061169057fe5b9060005260206000200191506105f69050612975565b6116ae6124d9565b505050505050565b6116be612678565b6001600160a01b03165a6116d0612a07565b6001600160a01b0316146117085760405162461bcd60e51b81526004016116f690613b5b565b604051809103906117056128ad565b50505b61171683600b6105d9612975565b80600b611721612918565b50505061172c612661565b6001600160a01b03166370a082315a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b604081101561179057600082820152602001611779565b5050506040518263ffffffff1660e01b81526004016117af919061399c565b60206040518083038186806117c2612a4d565b1580156117d7576000806117d46128ad565b50505b505a6117e1612a99565b5050505050158015611800573d6000803e3d60006117fd6128ad565b50505b50505050604051601f3d908101601f19168201604052611823919081019061312b565b600b61182d612975565b111561185d5760405162461bcd60e51b815260040161184b90613c1b565b6040518091039061185a6128ad565b50505b6001600160a01b03841660009081526008602052611883908490604090206105d9612975565b6001600160a01b038516600090815260086020526040902081906118a5612918565b5060009150505b818110156118e7576118df858484848181106118c457fe5b9050604002018036036118da91908101906130dd565b61269b565b6001016118ac565b5050505050565b60076105f6612975565b6001600160a01b03831660009081526006602052606090838301906040902080611920612975565b905081111561194e576001600160a01b03851660009081526006602052604090208061194a612975565b9150505b838111611988576000604051908082528060200260200182016040528015610ecd5781602001602082028038833901905050915050610754565b8381036060816040519080825280602002602001820160405280156119b7578160200160208202803883390190505b50905060005b82811015611069576001600160a01b0388166000908152600660205260409020878201816119e9612975565b81106119f157fe5b90600052602060002001611a03612975565b828281518110611a0f57fe5b60209081029190910101526001016119bd565b611a2a6105b7565b611a585760405162461bcd60e51b8152600401611a4690613bab565b60405180910390611a556128ad565b50505b611a606124f1565b6001600160a01b031663d37c4d8b846040518263ffffffff1660e01b8152600401611a8b9190613a56565b6020604051808303818680611a9e612a4d565b158015611ab357600080611ab06128ad565b50505b505a611abd612a99565b5050505050158015611adc573d6000803e3d6000611ad96128ad565b50505b50505050604051601f3d908101601f19168201604052611aff919081019061312b565b15611b2e5760405162461bcd60e51b8152600401611b1c90613c2b565b60405180910390611b2b6128ad565b50505b5a611b37612a07565b6001600160a01b038481166000908152600a60205291169060409020600090611b5e612975565b906101000a90046001600160a01b03166001600160a01b031614611ba65760405162461bcd60e51b8152600401611b9490613beb565b60405180910390611ba36128ad565b50505b6000805b82811015611de657611bba612b84565b6001600160a01b03861660009081526005602052604090206000868685818110611be057fe5b905060200201358152602001908152602001600020604051604080820190529081600082611c0c612975565b6001600160401b036101009290920a900416815260200160018201611c2f612975565b9052509050602081015115611ddd5780600560005a611c4c612a07565b6001600160a01b03166001600160a01b031681526020019081526020016000206000878786818110611c7a57fe5b905060200201358152602001908152602001600020815181600181611c9d612975565b816001600160401b0302191690836001600160401b0316021790611cbf612918565b505050602082015181600101611cd3612918565b5050905050611ced8160200151849063ffffffff611f7416565b9250600660005a611cfc612a07565b6001600160a01b03166001600160a01b03168152602001908152602001600020858584818110611d2857fe5b905060200201359080600181611d3c612975565b018082611d47612918565b5050600092835291600019830191506020902091929101611d66612918565b5050506001600160a01b03861660009081526005602052604090206000868685818110611d8f57fe5b905060200201358152602001908152602001600020600081600181611db2612975565b906001600160401b0302191690611dc7612918565b505060018201600090611dd8612918565b505050505b50600101611baa565b506001600160a01b03841660009081526008602052611e1990829060409020611e0d612975565b9063ffffffff61278816565b6001600160a01b03851660009081526008602052604090208190611e3b612918565b505050611e7781600860005a611e4f612a07565b6001600160a01b03166001600160a01b031681526020019081526020016000206105d9612975565b600860005a611e84612a07565b6001600160a01b03166001600160a01b031681526020019081526020016000208190611eae612918565b505050836001600160a01b03167f48d567deaa7db90f8a443344e519ca8906521ffe118e1df43e89a3c257963f7c5a611ee5612a07565b8386865a611ef16129c1565b604051611f029594939291906139f4565b60405180910390a250505050565b600080611f1b612975565b906101000a90046001600160a01b03166001600160a01b03165a611f3d612a07565b6001600160a01b031614611f725760405162461bcd60e51b8152600401611f6390613bdb565b60405180910390610e826128ad565b565b6000828201838110156107545760405162461bcd60e51b8152600401611f9990613b2b565b60405180910390611fa86128ad565b50509392505050565b6000611fc666119959541bdbdb60ca1b6127c2565b905090565b81611ffa5760405162461bcd60e51b8152600401611fe890613b8b565b60405180910390611ff76128ad565b50505b6000811180156120135750600c61200f612975565b8111155b6120415760405162461bcd60e51b815260040161202f90613b3b565b6040518091039061203e6128ad565b50505b61204f82600b6105d9612975565b80600b61205a612918565b505050612065612661565b6001600160a01b03166370a082315a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b60408110156120c9576000828201526020016120b2565b5050506040518263ffffffff1660e01b81526004016120e8919061399c565b60206040518083038186806120fb612a4d565b1580156121105760008061210d6128ad565b50505b505a61211a612a99565b5050505050158015612139573d6000803e3d60006121366128ad565b50505b50505050604051601f3d908101601f1916820160405261215c919081019061312b565b600b612166612975565b11156121965760405162461bcd60e51b815260040161218490613b9b565b604051809103906121936128ad565b50505b6000815a6121a26129c1565b6001600160a01b03861660009081526008602052910191506121cc908490604090206105d9612975565b6001600160a01b038516600090815260086020526040902081906121ee612918565b505050600060076121fd612975565b9050604051604080820181526001600160401b038416825260208083018790526001600160a01b038816600090815260059091522060008381526020919091526040902081518160018161224f612975565b816001600160401b0302191690836001600160401b0316021790612271612918565b505050602082015181600101612285612918565b5050506001600160a01b0386166000908152600660205260409150208190806001816122af612975565b0180826122ba612918565b50506000928352916000198301915060209020919291016122d9612918565b5050506122eb600160076105d9612975565b8060076122f6612918565b505050846001600160a01b03167f2cc016694185d38abbe28d9e9baea2e9d95a321ae43475e5ea7b643756840bc05a61232d6129c1565b8686856040516123409493929190613c69565b60405180910390a25050505050565b6000808260200151156109715782516001600160401b03165a6123706129c1565b1161237c576000610754565b82602001519392505050565b6123928282612849565b6001600160a01b038216600090815260096020526123b8908290604090206105d9612975565b6001600160a01b038316600090815260096020526040902081906123da612918565b5050506123e5612661565b6001600160a01b031663a9059cbb83836040518363ffffffff1660e01b8152600401612412929190613a64565b60206040518083038160008780612427612a4d565b15801561243c576000806124396128ad565b50505b505a612446612bba565b505050505050158015612466573d6000803e3d60006124636128ad565b50505b50505050604051601f3d908101601f1916820160405261248991908101906130b6565b50816001600160a01b03167ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc65a6124be6129c1565b836040516124cd929190613c5b565b60405180910390a25050565b60405162461bcd60e51b8152600401611f6390613b7b565b6000611fc66524b9b9bab2b960d11b6127c2565b60606003604051908082528060200260200182016040528015612532578160200160208202803883390190505b509050680a6f2dce8d0cae8d2f60bb1b8160008151811061254f57fe5b60200260200101818152505066119959541bdbdb60ca1b8160018151811061257357fe5b6020026020010181815250506524b9b9bab2b960d11b8160028151811061259657fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156125d5578160200160208202803883390190505b50905060005b8351811015612617578381815181106125f057fe5b602002602001015182828151811061260457fe5b60209081029190910101526001016125db565b5060005b825181101561265a5782818151811061263057fe5b602002602001015182828651018151811061264757fe5b602090810291909101015260010161261b565b5092915050565b6000611fc6680a6f2dce8d0cae8d2f60bb1b6127c2565b6000611fc67453796e746865746978427269646765546f4261736560581b6127c2565b600060076126a7612975565b6001600160a01b038416600090815260056020529091508290604090206000838152602091909152604090208151816001816126e1612975565b816001600160401b0302191690836001600160401b0316021790612703612918565b505050602082015181600101612717612918565b5050506001600160a01b038416600090815260066020526040915020819080600181612741612975565b01808261274c612918565b505060009283529160001983019150602090209192910161276b612918565b50505061277d600160076105d9612975565b8060076116ae612918565b6000828211156127bc5760405162461bcd60e51b81526004016127aa90613b6b565b604051809103906127b96128ad565b50505b50900390565b6000818152600460205280604081206000906127dc612975565b6001600160a01b036101009290920a9004169050801515836040516020016128049190613971565b6040516020818303038152906040529061265a5760405162461bcd60e51b81526004016128319190613b0a565b604051809103906128406128ad565b50505092915050565b61285781600b611e0d612975565b80600b612862612918565b5050506001600160a01b0382166000908152600860205261288b90829060409020611e0d612975565b6001600160a01b038316600090815260086020526040902081906118e7612918565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156128e55780860151828201604001526020016128ca565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60005b604081101561072e5760008282015260200161295e565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061295e565b63bdbf8c36598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061295e565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061295e565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061295e565b638540661f598160e01b8152612aca565b8080831115610971575090919050565b8080831015610971575090919050565b836004820152846024820152606060448201528660648201526084810160005b88811015612b02578088015182820152602001612aea565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af15059612b578d3d612aba565b8c01612b638187612aaa565b5b82811015612b785760008152602001612b64565b50929c50505050505050565b604051604080820190526000808252602082015290565b6040516060810160409081526000808352602083018190529082015290565b6385979f76598160e01b8152836004820152846024820152606060448201528760648201526084810160005b89811015612bfe578089015182820152602001612be6565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af15059612c538e3d612aba565b8d01612c5f8187612aaa565b5b82811015612c745760008152602001612c60565b50929d50505050505050565b803561097181613d82565b60008151905061097181613d82565b60008083601f840112612cb557600080612cb26128ad565b50505b5081356001600160401b03811115612cd557600080612cd26128ad565b50505b602083019150836020820283011115612cf657600080612cf36128ad565b50505b9250929050565b60008083601f840112612d1857600080612d156128ad565b50505b5081356001600160401b03811115612d3857600080612d356128ad565b50505b602083019150836040820283011115612cf657600080612cf36128ad565b60008151905061097181613d9c565b600060408284031215612d8057600080612d7d6128ad565b50505b612d8a6040613cb5565b90506000612d988484612dcf565b8252506020612da984848301612db5565b60208301525092915050565b803561097181613da5565b60008151905061097181613da5565b803561097181613dae565b600060208284031215612df557600080612df26128ad565b50505b600061096d8484612c80565b600060208284031215612e1c57600080612e196128ad565b50505b600061096d8484612c8b565b600080600060408486031215612e4657600080612e436128ad565b50505b6000612e528686612c80565b93505060208401356001600160401b03811115612e7757600080612e746128ad565b50505b612e8386828701612c9a565b92509250509250925092565b60008060408385031215612eab57600080612ea86128ad565b50505b6000612eb78585612c80565b9250506020612ec885828601612db5565b9150509250929050565b60008060008060608587031215612ef157600080612eee6128ad565b50505b6000612efd8787612c80565b9450506020612f0e87828801612db5565b93505060408501356001600160401b03811115612f3357600080612f306128ad565b50505b612f3f87828801612cfd565b95989497509550505050565b600080600060608486031215612f6957600080612f666128ad565b50505b6000612f758686612c80565b9350506020612f8686828701612db5565b9250506040612f9786828701612db5565b9150509250925092565b60008060008060008060608789031215612fc357600080612fc06128ad565b50505b86356001600160401b03811115612fe257600080612fdf6128ad565b50505b612fee89828a01612c9a565b965096505060208701356001600160401b03811115613015576000806130126128ad565b50505b61302189828a01612c9a565b945094505060408701356001600160401b03811115613048576000806130456128ad565b50505b61305489828a01612c9a565b92509250509295509295509295565b6000806020838503121561307f5760008061307c6128ad565b50505b82356001600160401b0381111561309e5760008061309b6128ad565b50505b6130aa85828601612c9a565b92509250509250929050565b6000602082840312156130d1576000806130ce6128ad565b50505b600061096d8484612d56565b6000604082840312156130f8576000806130f56128ad565b50505b600061096d8484612d65565b60006020828403121561311f5760008061311c6128ad565b50505b600061096d8484612db5565b600060208284031215613146576000806131436128ad565b50505b600061096d8484612dc0565b600061315e8383613334565b505060200190565b60006131728383613909565b505060600190565b60006131868383613945565b505060400190565b61319781613d2e565b82525050565b61319781613d06565b60006131b182613cee565b6131bb8185613cf8565b93506131c683613ce8565b8060005b838110156131f45781516131de8882613152565b97506131e983613ce8565b9250506001016131ca565b509495945050505050565b600061320a82613cee565b6132148185613cf8565b935061321f83613ce8565b8060005b838110156131f45781516132378882613166565b975061324283613ce8565b925050600101613223565b600061325882613cee565b6132628185613cf8565b935061326d83613ce8565b8060005b838110156131f4578151613285888261317a565b975061329083613ce8565b925050600101613271565b60006132a78385613cf8565b93506001600160fb1b038311156132c6576000806132c36128ad565b50505b6020830292506132d7838584613d40565b50500190565b60006132e882613cee565b6132f28185613cf8565b93506132fd83613ce8565b8060005b838110156131f45781516133158882613152565b975061332083613ce8565b925050600101613301565b61319781613d11565b613197816105e9565b613197613349826105e9565b6105e9565b61319781613d35565b600061336282613cee565b61336c8185613cf8565b935061337c818560208601613d4c565b61338581613d78565b9093019392505050565b600061339c603583613cf8565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006133f3601b83613cf8565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b600061342c603383613cf8565b7f43616e6e6f7420657363726f7720776974682030206475726174696f6e204f528152721030b137bb329036b0bc2fb23ab930ba34b7b760691b602082015260400192915050565b6000613481602483613cf8565b7f43616e6e6f742063726561746520657363726f772077697468206164647265738152637328302960e01b602082015260400192915050565b60006134c7603583613cf8565b7f43616e206f6e6c7920626520696e766f6b65642062792053796e746865746978815274109c9a5919d9551bd0985cd94818dbdb9d1c9858dd605a1b602082015260400192915050565b600061351e601e83613cf8565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613557601b83613cf8565b7f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000815260200192915050565b6000613590601183613d01565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006135bd601783613cf8565b7f5175616e746974792063616e6e6f74206265207a65726f000000000000000000815260200192915050565b60006135f6604783613cf8565b7f4d75737420626520656e6f7567682062616c616e636520696e2074686520636f81527f6e747261637420746f2070726f7669646520666f72207468652076657374696e6020820152666720656e74727960c81b604082015260600192915050565b6000613665601983613cf8565b7f4163636f756e74206d657267696e672068617320656e64656400000000000000815260200192915050565b600061369e601583613cf8565b741d1bdad95b881d1c985b9cd9995c8819985a5b1959605a1b815260200192915050565b60006136cf602483613cf8565b7f43616e6e6f74206e6f6d696e617465206f776e206163636f756e7420746f206d8152636572676560e01b602082015260400192915050565b6000613715602f83613cf8565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631cd554d160e21b9052565b6000613772602183613cf8565b7f41646472657373206973206e6f74206e6f6d696e6174656420746f206d6572678152606560f81b602082015260400192915050565b60006137b5601c83613cf8565b7f65786365656473206d6178206d657267696e67206475726174696f6e00000000815260200192915050565b60006137ee601983613d01565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613827602883613cf8565b7f4f6e6c792074686520466565506f6f6c2063616e20706572666f726d20746869815267399030b1ba34b7b760c11b602082015260400192915050565b6000613871604483613cf8565b7f496e73756666696369656e742062616c616e636520696e2074686520636f6e7481527f7261637420746f2070726f7669646520666f7220657363726f7765642062616c602082015263616e636560e01b604082015260600192915050565b60006138dd601f83613cf8565b7f43616e6e6f74206d65726765206163636f756e74732077697468206465627400815260200192915050565b6060820181516139198482613968565b50602082015161392c6020850182613334565b50604082015161393f6040850182613334565b50505050565b6040820181516139558482613968565b50602082015161393f6020850182613334565b61319781613d22565b600061397c82613583565b9150613988828461333d565b50602001919050565b600061397c826137e1565b60208101610971828461319d565b606081016139b8828661318e565b6139c5602083018561319d565b6139d26040830184613334565b949350505050565b604081016139e8828461318e565b61097160208301613759565b60808101613a02828861318e565b613a0f6020830187613334565b8181036040830152613a2281858761329b565b9050613a316060830184613334565b9695505050505050565b60408101613a49828561319d565b610754602083018461319d565b604081016139e8828461319d565b60408101613a72828561319d565b6107546020830184613334565b6020808252810161075481846131a6565b6020808252810161075481846131ff565b6020808252810161075481846132dd565b60208101610971828461332b565b602081016109718284613334565b60408101613a498285613334565b60408101613aea8285613334565b81810360208301526139d28184613357565b60208101610971828461334e565b602080825281016107548184613357565b602080825281016109718161338f565b60208082528101610971816133e6565b602080825281016109718161341f565b6020808252810161097181613474565b60208082528101610971816134ba565b6020808252810161097181613511565b602080825281016109718161354a565b60208082528101610971816135b0565b60208082528101610971816135e9565b6020808252810161097181613658565b6020808252810161097181613691565b60208082528101610971816136c2565b6020808252810161097181613708565b6020808252810161097181613765565b60208082528101610971816137a8565b602080825281016109718161381a565b6020808252810161097181613864565b60208082528101610971816138d0565b60408101613c498285613334565b81810360208301526139d2818461324d565b60408101613a728285613334565b60808101613c778287613334565b613c846020830186613334565b613c916040830185613334565b613c9e6060830184613334565b95945050505050565b60408101613a728285613968565b600060405190508181018181106001600160401b0382111715613ce057600080613cdd6128ad565b50505b604052919050565b60200190565b6000815192915050565b90815260200190565b919050565b600061097182613d16565b151590565b6001600160a01b031690565b6001600160401b031690565b6000610971825b600061097182613d06565b82818337506000910152565b60005b83811015613d67578082015183820152602001613d4f565b8381111561393f5750506000910152565b601f01601f191690565b613d8b81613d06565b811461107c5760008061072e6128ad565b613d8b81613d11565b613d8b816105e9565b613d8b81613d2256", "abi": [