[ { "inputs": [ { "internalType": "uint256", "name": "totalSupply_", "type": "uint256" }, { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "address", "name": "admin_", "type": "address" }, { "internalType": "address", "name": "recoveryAdmin_", "type": "address" }, { "internalType": "uint256", "name": "timelockPeriod_", "type": "uint256" }, { "internalType": "address", "name": "lossless_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "turnOffDate", "type": "uint256" } ], "name": "LosslessTurnOffProposed", "type": "event" }, { "anonymous": false, "inputs": [], "name": "LosslessTurnedOff", "type": "event" }, { "anonymous": false, "inputs": [], "name": "LosslessTurnedOn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "candidate", "type": "address" } ], "name": "RecoveryAdminChangeProposed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "RecoveryAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "bytes", "name": "key", "type": "bytes" } ], "name": "acceptRecoveryAdminOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "admin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "executeLosslessTurnOff", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "executeLosslessTurnOn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "isLosslessOn", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isLosslessTurnOffProposed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "losslessTurnOffTimestamp", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proposeLosslessTurnOff", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "recoveryAdmin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "setLosslessAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "timelockPeriod", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "from", "type": "address[]" } ], "name": "transferOutBlacklistedFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "candidate", "type": "address" }, { "internalType": "bytes32", "name": "keyHash", "type": "bytes32" } ], "name": "transferRecoveryAdminOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526001600b60016101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040516200388938038062003889833981810160405281019062000052919062000425565b62000073620000666200017c60201b60201c565b886200018460201b60201c565b85600390805190602001906200008b929190620002d5565b508460049080519060200190620000a4929190620002d5565b5083600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160098190555080600b60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050620007d6565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620001f7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001ee9062000557565b60405180910390fd5b80600260008282546200020b91906200060e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200026291906200060e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002c9919062000579565b60405180910390a35050565b828054620002e390620006df565b90600052602060002090601f01602090048101928262000307576000855562000353565b82601f106200032257805160ff191683800117855562000353565b8280016001018555821562000353579182015b828111156200035257825182559160200191906001019062000335565b5b50905062000362919062000366565b5090565b5b808211156200038157600081600090555060010162000367565b5090565b60006200039c6200039684620005ca565b62000596565b905082815260208101848484011115620003b557600080fd5b620003c2848285620006a9565b509392505050565b600081519050620003db81620007a2565b92915050565b600082601f830112620003f357600080fd5b81516200040584826020860162000385565b91505092915050565b6000815190506200041f81620007bc565b92915050565b600080600080600080600060e0888a0312156200044157600080fd5b6000620004518a828b016200040e565b975050602088015167ffffffffffffffff8111156200046f57600080fd5b6200047d8a828b01620003e1565b965050604088015167ffffffffffffffff8111156200049b57600080fd5b620004a98a828b01620003e1565b9550506060620004bc8a828b01620003ca565b9450506080620004cf8a828b01620003ca565b93505060a0620004e28a828b016200040e565b92505060c0620004f58a828b01620003ca565b91505092959891949750929550565b600062000513602083620005fd565b91507f4c45524332303a206d696e7420746f20746865207a65726f20616464726573736000830152602082019050919050565b62000551816200069f565b82525050565b60006020820190508181036000830152620005728162000504565b9050919050565b600060208201905062000590600083018462000546565b92915050565b6000604051905081810181811067ffffffffffffffff82111715620005c057620005bf62000773565b5b8060405250919050565b600067ffffffffffffffff821115620005e857620005e762000773565b5b601f19601f8301169050602081019050919050565b600082825260208201905092915050565b60006200061b826200069f565b915062000628836200069f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000660576200065f62000715565b5b828201905092915050565b600062000678826200067f565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620006c9578082015181840152602081019050620006ac565b83811115620006d9576000848401525b50505050565b60006002820490506001821680620006f857607f821691505b602082108114156200070f576200070e62000744565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620007ad816200066b565b8114620007b957600080fd5b50565b620007c7816200069f565b8114620007d357600080fd5b50565b6130a380620007e66000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de578063b38fe95711610097578063d6e242b811610071578063d6e242b81461042a578063dd62ed3e14610434578063efab831c14610464578063f851a4401461048257610173565b8063b38fe957146103e6578063b5c22877146103f0578063ccfa214f1461040c57610173565b806370a082311461030057806393310ffe14610330578063936af9111461034c57806395d89b4114610368578063a457c2d714610386578063a9059cbb146103b657610173565b8063313ce56711610130578063313ce5671461024e578063395093511461026c5780635b8a194a1461029c5780635f6529a3146102a657806361086b00146102c45780636e9960c3146102e257610173565b806306fdde0314610178578063095ea7b31461019657806318160ddd146101c657806323b872dd146101e45780632baa3c9e146102145780632ecaf67514610230575b600080fd5b6101806104a0565b60405161018d9190612b4f565b60405180910390f35b6101b060048036038101906101ab91906124b6565b610532565b6040516101bd9190612b34565b60405180910390f35b6101ce610857565b6040516101db9190612d31565b60405180910390f35b6101fe60048036038101906101f9919061242b565b610861565b60405161020b9190612b34565b60405180910390f35b61022e600480360381019061022991906123c6565b610baf565b005b610238610d06565b6040516102459190612d31565b60405180910390f35b610256610d0c565b6040516102639190612d4c565b60405180910390f35b610286600480360381019061028191906124b6565b610d15565b6040516102939190612b34565b60405180910390f35b6102a4610fb4565b005b6102ae6110af565b6040516102bb9190612a9d565b60405180910390f35b6102cc6110d5565b6040516102d99190612d31565b60405180910390f35b6102ea6110db565b6040516102f79190612a9d565b60405180910390f35b61031a600480360381019061031591906123c6565b611105565b6040516103279190612d31565b60405180910390f35b61034a6004803603810190610345919061247a565b61114d565b005b610366600480360381019061036191906124f2565b611273565b005b6103706113ff565b60405161037d9190612b4f565b60405180910390f35b6103a0600480360381019061039b91906124b6565b611491565b6040516103ad9190612b34565b60405180910390f35b6103d060048036038101906103cb91906124b6565b6117c2565b6040516103dd9190612b34565b60405180910390f35b6103ee611945565b005b61040a60048036038101906104059190612537565b611ad4565b005b610414611cba565b6040516104219190612b34565b60405180910390f35b610432611ccd565b005b61044e600480360381019061044991906123ef565b611dce565b60405161045b9190612d31565b60405180910390f35b61046c611e55565b6040516104799190612b34565b60405180910390f35b61048a611e68565b6040516104979190612a9d565b60405180910390f35b6060600380546104af90612f0f565b80601f01602080910402602001604051908101604052809291908181526020018280546104db90612f0f565b80156105285780601f106104fd57610100808354040283529160200191610528565b820191906000526020600020905b81548152906001019060200180831161050b57829003601f168201915b5050505050905090565b60008282600b60019054906101000a900460ff161561076757600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347abf3be610591611e8e565b84846040518463ffffffff1660e01b81526004016105b193929190612afd565b600060405180830381600087803b1580156105cb57600080fd5b505af11580156105df573d6000803e3d6000fd5b50505050600084148061067557506000600160006105fb611e8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b6106b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ab90612cb1565b60405180910390fd5b6106c66106bf611e8e565b8686611e96565b60019250600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663900f66ef610710611e8e565b84846040518463ffffffff1660e01b815260040161073093929190612afd565b600060405180830381600087803b15801561074a57600080fd5b505af115801561075e573d6000803e3d6000fd5b5050505061084f565b60008414806107f9575060006001600061077f611e8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f90612cb1565b60405180910390fd5b61084a610843611e8e565b8686611e96565b600192505b505092915050565b6000600254905090565b6000838383600b60019054906101000a900460ff1615610aac57600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663379f5c696108c1611e8e565b8585856040518563ffffffff1660e01b81526004016108e39493929190612ab8565b600060405180830381600087803b1580156108fd57600080fd5b505af1158015610911573d6000803e3d6000fd5b50505050610920878787612061565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061096b611e8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050858110156109eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e290612bd1565b60405180910390fd5b610a08886109f7611e8e565b8884610a039190612e3a565b611e96565b6001945050600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a56e8adf610a53611e8e565b8585856040518563ffffffff1660e01b8152600401610a759493929190612ab8565b600060405180830381600087803b158015610a8f57600080fd5b505af1158015610aa3573d6000803e3d6000fd5b50505050610ba5565b610ab7878787612061565b6000600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b02611e8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7990612bd1565b60405180910390fd5b610b9f88610b8e611e8e565b8884610b9a9190612e3a565b611e96565b60019450505b5050509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bf0611e8e565b73ffffffffffffffffffffffffffffffffffffffff1614610c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3d90612c71565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a380600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b60006012905090565b60008282600b60019054906101000a900460ff1615610f0757600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf5961bb610d74611e8e565b84846040518463ffffffff1660e01b8152600401610d9493929190612afd565b600060405180830381600087803b158015610dae57600080fd5b505af1158015610dc2573d6000803e3d6000fd5b50505050610e66610dd1611e8e565b868660016000610ddf611e8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e619190612de4565b611e96565b60019250600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334d01aa8610eb0611e8e565b84846040518463ffffffff1660e01b8152600401610ed093929190612afd565b600060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b50505050610fac565b610fa7610f12611e8e565b868660016000610f20611e8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fa29190612de4565b611e96565b600192505b505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff5611e8e565b73ffffffffffffffffffffffffffffffffffffffff161461104b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104290612c71565b60405180910390fd5b6000600b60006101000a81548160ff0219169083151502179055506001600b60016101000a81548160ff0219169083151502179055507fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7060405160405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661118e611e8e565b73ffffffffffffffffffffffffffffffffffffffff16146111e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111db90612c71565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806007819055508173ffffffffffffffffffffffffffffffffffffffff167fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3660405160405180910390a25050565b600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112b4611e8e565b73ffffffffffffffffffffffffffffffffffffffff161461130a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130190612c91565b60405180910390fd5b60005b828290508110156113fa576113e7838383818110611354577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201602081019061136991906123c6565b600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff166113e28686868181106113c8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906113dd91906123c6565b611105565b612061565b80806113f290612f41565b91505061130d565b505050565b60606004805461140e90612f0f565b80601f016020809104026020016040519081016040528092919081815260200182805461143a90612f0f565b80156114875780601f1061145c57610100808354040283529160200191611487565b820191906000526020600020905b81548152906001019060200180831161146a57829003601f168201915b5050505050905090565b60008282600b60019054906101000a900460ff16156116cc57600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663568c75a96114f0611e8e565b84846040518463ffffffff1660e01b815260040161151093929190612afd565b600060405180830381600087803b15801561152a57600080fd5b505af115801561153e573d6000803e3d6000fd5b50505050600060016000611550611e8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508481101561160d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160490612cf1565b60405180910390fd5b61162a611618611e8e565b8787846116259190612e3a565b611e96565b6001935050600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ded1f4d0611675611e8e565b84846040518463ffffffff1660e01b815260040161169593929190612afd565b600060405180830381600087803b1580156116af57600080fd5b505af11580156116c3573d6000803e3d6000fd5b505050506117ba565b6000600160006116da611e8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178e90612cf1565b60405180910390fd5b6117b46117a2611e8e565b8787846117af9190612e3a565b611e96565b60019350505b505092915050565b60008282600b60019054906101000a900460ff161561192657600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ffb811f611821611e8e565b84846040518463ffffffff1660e01b815260040161184193929190612afd565b600060405180830381600087803b15801561185b57600080fd5b505af115801561186f573d6000803e3d6000fd5b5050505061188561187e611e8e565b8686612061565b60019250600b60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f49062ca6118cf611e8e565b84846040518463ffffffff1660e01b81526004016118ef93929190612afd565b600060405180830381600087803b15801561190957600080fd5b505af115801561191d573d6000803e3d6000fd5b5050505061193d565b611938611931611e8e565b8686612061565b600192505b505092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611986611e8e565b73ffffffffffffffffffffffffffffffffffffffff16146119dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d390612c71565b60405180910390fd5b600b60009054906101000a900460ff16611a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2290612c11565b60405180910390fd5b42600a541115611a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6790612b91565b60405180910390fd5b6000600b60016101000a81548160ff0219169083151502179055506000600b60006101000a81548160ff0219169083151502179055507f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a60405160405180910390a1565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611b15611e8e565b73ffffffffffffffffffffffffffffffffffffffff1614611b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6290612c51565b60405180910390fd5b600754818051906020012014611bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bad90612bf1565b60405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb60405160405180910390a3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b60019054906101000a900460ff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611d0e611e8e565b73ffffffffffffffffffffffffffffffffffffffff1614611d64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5b90612c71565b60405180910390fd5b60095442611d729190612de4565b600a819055506001600b60006101000a81548160ff0219169083151502179055507f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb158709600a54604051611dc49190612d31565b60405180910390a1565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b60009054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611efd90612cd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90612d11565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120549190612d31565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890612c31565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612141576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213890612b71565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156121c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121be90612bb1565b60405180910390fd5b81816121d39190612e3a565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122639190612de4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122c79190612d31565b60405180910390a350505050565b60006122e86122e384612d98565b612d67565b90508281526020810184848401111561230057600080fd5b61230b848285612ecd565b509392505050565b60008135905061232281613028565b92915050565b60008083601f84011261233a57600080fd5b8235905067ffffffffffffffff81111561235357600080fd5b60208301915083602082028301111561236b57600080fd5b9250929050565b6000813590506123818161303f565b92915050565b600082601f83011261239857600080fd5b81356123a88482602086016122d5565b91505092915050565b6000813590506123c081613056565b92915050565b6000602082840312156123d857600080fd5b60006123e684828501612313565b91505092915050565b6000806040838503121561240257600080fd5b600061241085828601612313565b925050602061242185828601612313565b9150509250929050565b60008060006060848603121561244057600080fd5b600061244e86828701612313565b935050602061245f86828701612313565b9250506040612470868287016123b1565b9150509250925092565b6000806040838503121561248d57600080fd5b600061249b85828601612313565b92505060206124ac85828601612372565b9150509250929050565b600080604083850312156124c957600080fd5b60006124d785828601612313565b92505060206124e8858286016123b1565b9150509250929050565b6000806020838503121561250557600080fd5b600083013567ffffffffffffffff81111561251f57600080fd5b61252b85828601612328565b92509250509250929050565b60006020828403121561254957600080fd5b600082013567ffffffffffffffff81111561256357600080fd5b61256f84828501612387565b91505092915050565b61258181612e6e565b82525050565b61259081612e80565b82525050565b60006125a182612dc8565b6125ab8185612dd3565b93506125bb818560208601612edc565b6125c481613017565b840191505092915050565b60006125dc602483612dd3565b91507f4c45524332303a207472616e7366657220746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612642601d83612dd3565b91507f4c45524332303a2054696d65206c6f636b20696e2070726f67726573730000006000830152602082019050919050565b6000612682602783612dd3565b91507f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060008301527f62616c616e6365000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006126e8602983612dd3565b91507f4c45524332303a207472616e7366657220616d6f756e7420657863656564732060008301527f616c6c6f77616e636500000000000000000000000000000000000000000000006020830152604082019050919050565b600061274e601383612dd3565b91507f4c45524332303a20496e76616c6964206b6579000000000000000000000000006000830152602082019050919050565b600061278e601c83612dd3565b91507f4c45524332303a205475726e4f6666206e6f742070726f706f736564000000006000830152602082019050919050565b60006127ce602683612dd3565b91507f4c45524332303a207472616e736665722066726f6d20746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612834601983612dd3565b91507f4c45524332303a204d7573742062652063616e646974617465000000000000006000830152602082019050919050565b6000612874601e83612dd3565b91507f4c45524332303a204d757374206265207265636f766572792061646d696e00006000830152602082019050919050565b60006128b4601e83612dd3565b91507f4c45524332303a204f6e6c79206c6f73736c65737320636f6e747261637400006000830152602082019050919050565b60006128f4602883612dd3565b91507f4c45524332303a2043616e6e6f74206368616e6765206e6f6e207a65726f206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b600061295a602583612dd3565b91507f4c45524332303a20617070726f76652066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006129c0602683612dd3565b91507f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f60008301527f77207a65726f00000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612a26602383612dd3565b91507f4c45524332303a20617070726f766520746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b612a8881612eb6565b82525050565b612a9781612ec0565b82525050565b6000602082019050612ab26000830184612578565b92915050565b6000608082019050612acd6000830187612578565b612ada6020830186612578565b612ae76040830185612578565b612af46060830184612a7f565b95945050505050565b6000606082019050612b126000830186612578565b612b1f6020830185612578565b612b2c6040830184612a7f565b949350505050565b6000602082019050612b496000830184612587565b92915050565b60006020820190508181036000830152612b698184612596565b905092915050565b60006020820190508181036000830152612b8a816125cf565b9050919050565b60006020820190508181036000830152612baa81612635565b9050919050565b60006020820190508181036000830152612bca81612675565b9050919050565b60006020820190508181036000830152612bea816126db565b9050919050565b60006020820190508181036000830152612c0a81612741565b9050919050565b60006020820190508181036000830152612c2a81612781565b9050919050565b60006020820190508181036000830152612c4a816127c1565b9050919050565b60006020820190508181036000830152612c6a81612827565b9050919050565b60006020820190508181036000830152612c8a81612867565b9050919050565b60006020820190508181036000830152612caa816128a7565b9050919050565b60006020820190508181036000830152612cca816128e7565b9050919050565b60006020820190508181036000830152612cea8161294d565b9050919050565b60006020820190508181036000830152612d0a816129b3565b9050919050565b60006020820190508181036000830152612d2a81612a19565b9050919050565b6000602082019050612d466000830184612a7f565b92915050565b6000602082019050612d616000830184612a8e565b92915050565b6000604051905081810181811067ffffffffffffffff82111715612d8e57612d8d612fe8565b5b8060405250919050565b600067ffffffffffffffff821115612db357612db2612fe8565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612def82612eb6565b9150612dfa83612eb6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e2f57612e2e612f8a565b5b828201905092915050565b6000612e4582612eb6565b9150612e5083612eb6565b925082821015612e6357612e62612f8a565b5b828203905092915050565b6000612e7982612e96565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015612efa578082015181840152602081019050612edf565b83811115612f09576000848401525b50505050565b60006002820490506001821680612f2757607f821691505b60208210811415612f3b57612f3a612fb9565b5b50919050565b6000612f4c82612eb6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612f7f57612f7e612f8a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b61303181612e6e565b811461303c57600080fd5b50565b61304881612e8c565b811461305357600080fd5b50565b61305f81612eb6565b811461306a57600080fd5b5056fea2646970667358221220f40d59829383d04ca99d86651747e27245f558eb5c75f9e40d0b8c33d1e63aad64736f6c6343000800003300000000000000000000000000000000000000000052b7d2dcc80cd2e400000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000005d27d8d3489da562d540ffe26bdb41635db62f650000000000000000000000005d27d8d3489da562d540ffe26bdb41635db62f650000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4000000000000000000000000000000000000000000000000000000000000000e4c6f73736c65737320546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c53530000000000000000000000000000000000000000000000000000000000
0xa2646970667358221220f40d59829383d04ca99d86651747e27245f558eb5c75f9e40d0b8c33d1e63aad64736f6c6343000800003300000000000000000000000000000000000000000052b7d2dcc80cd2e400000000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000005d27d8d3489da562d540ffe26bdb41635db62f650000000000000000000000005d27d8d3489da562d540ffe26bdb41635db62f650000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4000000000000000000000000000000000000000000000000000000000000000e4c6f73736c65737320546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034c53530000000000000000000000000000000000000000000000000000000000