19c687c9d2
Signed-off-by: AlienTornadosaurusHex <>
678 lines
55 KiB
JSON
678 lines
55 KiB
JSON
{
|
|
"contractName": "RelayerRegistry",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "_torn",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_governance",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_ens",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_staking",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "_feeManager",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "minStakeAmount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "MinimumStakeAmount",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "RelayerBalanceNullified",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes32",
|
|
"name": "relayer",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "string",
|
|
"name": "ensName",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "relayerAddress",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "stakedAmount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "RelayerRegistered",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "tornadoRouter",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "RouterRegistered",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "amountStakeAdded",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "StakeAddedToRelayer",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "amountBurned",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "StakeBurned",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "worker",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "WorkerRegistered",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "worker",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "WorkerUnregistered",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32[]",
|
|
"name": "domains",
|
|
"type": "bytes32[]"
|
|
}
|
|
],
|
|
"name": "bulkResolve",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address[]",
|
|
"name": "result",
|
|
"type": "address[]"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "contract ITornadoInstance",
|
|
"name": "pool",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "burn",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ens",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IENS",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "feeManager",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IFeeManager",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getRelayerBalance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getRelayerEnsHash",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "governance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "_tornadoRouter",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "initialize",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "toResolve",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "isRelayer",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "toResolve",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "isRelayerRegistered",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "minStakeAmount",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "nullifyBalance",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "ensName",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "stake",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "address[]",
|
|
"name": "workersToRegister",
|
|
"type": "address[]"
|
|
}
|
|
],
|
|
"name": "register",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "ensName",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "stake",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "address[]",
|
|
"name": "workersToRegister",
|
|
"type": "address[]"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "deadline",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "v",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "r",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "s",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "registerPermit",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "worker",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "registerWorker",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "relayers",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balance",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "ensHash",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "node",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "resolve",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "minAmount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setMinStakeAmount",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "tornadoRouterAddress",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "setTornadoRouter",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "stake",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "stakeToRelayer",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "relayer",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "stake",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "staker",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "deadline",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint8",
|
|
"name": "v",
|
|
"type": "uint8"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "r",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "s",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "stakeToRelayerPermit",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "staking",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract TornadoStakingRewards",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "torn",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract TORN",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "tornadoRouter",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "worker",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "unregisterWorker",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "workers",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x6101206040523480156200001257600080fd5b50604051620029be380380620029be83398101604081905262000035916200006d565b6001600160601b0319606095861b811660805293851b841660a05291841b831660c052831b821660e05290911b166101005262000105565b600080600080600060a0868803121562000085578081fd5b85516200009281620000ec565b6020870151909550620000a581620000ec565b6040870151909450620000b881620000ec565b6060870151909350620000cb81620000ec565b6080870151909250620000de81620000ec565b809150509295509295909350565b6001600160a01b03811681146200010257600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c61282e620001906000398061078452806110535250806108935280610a50528061148052806117e75250806105ac52806115c55250806109555280610a8a5280610bf05280611177525080610dc05280610f8852806110bd528061145d52806117c4525061282e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806385a29683116100ee578063d0fb020311610097578063e43fdb3c11610071578063e43fdb3c14610353578063eb4af04514610366578063f188768414610379578063f9e5423414610381576101ae565b8063d0fb020314610325578063d990231d1461032d578063e37e8bcc14610340576101ae565b8063ae53941c116100c8578063ae53941c146102df578063b69fd4ab146102ff578063b971a6bf14610312576101ae565b806385a29683146102b15780639498bd71146102c4578063adf898a4146102d7576101ae565b80634cb16c2e1161015b5780635300f841116101355780635300f84114610255578063541d5548146102765780635aa6e675146102965780635c23bdf51461029e576101ae565b80634cb16c2e146102325780634cf088d91461023a5780634d4efd0414610242576101ae565b80634048a2571161018c5780634048a257146101f957806345a11cec1461020c5780634ba16d9d1461021f576101ae565b80632e650649146101b35780633523dc85146101c85780633f15457f146101db575b600080fd5b6101c66101c1366004611e07565b6103a1565b005b6101c66101d6366004611dcf565b61041d565b6101e36105aa565b6040516101f09190612147565b60405180910390f35b6101e3610207366004611dcf565b6105ce565b6101c661021a366004611e3f565b6105f6565b6101c661022d366004611dcf565b61093d565b6101e3610a2c565b6101e3610a4e565b6101c6610250366004611dcf565b610a72565b610268610263366004611dcf565b610ba8565b6040516101f092919061211d565b610289610284366004611dcf565b610bc1565b6040516101f0919061228e565b6101e3610bee565b6101e36102ac366004611fd7565b610c12565b6101c66102bf366004611eb4565b610d83565b6101c66102d2366004611fd7565b610e47565b6101e3610f86565b6102f26102ed366004611dcf565b610faa565b6040516101f09190612299565b61028961030d366004611e07565b610fe5565b6102f2610320366004611dcf565b611019565b6101e3611051565b6101c661033b366004611e89565b611075565b6101c661034e366004612066565b611080565b6101c6610361366004611fef565b61114a565b6101c6610374366004611fd7565b61115f565b6102f2611203565b61039461038f366004611f22565b611209565b6040516101f09190612234565b33600081815260036020526040902054839073ffffffffffffffffffffffffffffffffffffffff80831691161461040d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906125f0565b60405180910390fd5b61041784846112b7565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461049a5773ffffffffffffffffffffffffffffffffffffffff81811660009081526003602052604090205416331461049a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612627565b73ffffffffffffffffffffffffffffffffffffffff80821660008181526003602052604090205490911614156104fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612514565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260036020526040908190205490517fb2a8e18b9e887f502d65c1683e60b723fa582a6903ea4e8eb23907a19c1ce8a0926105569216908490612168565b60405180910390a173ffffffffffffffffffffffffffffffffffffffff16600090815260036020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461064d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906123a4565b73ffffffffffffffffffffffffffffffffffffffff80841660009081526003602052604090205416806106df5773ffffffffffffffffffffffffffffffffffffffff83811660009081526003602052604090205416156106d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612582565b50610938565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906125f0565b6040517f2efbf38400000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632efbf384906107b9908690600401612147565b602060405180830381600087803b1580156107d357600080fd5b505af11580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190611deb565b73ffffffffffffffffffffffffffffffffffffffff85811660009081526002602052604090205491169150610840908261139c565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260026020526040908190209290925590517f338610af0000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169063338610af906108ca908490600401612299565b600060405180830381600087803b1580156108e457600080fd5b505af11580156108f8573d6000803e3d6000fd5b505050507f659f33fc6677bebf3a9bf3101092792e31f35766d0358e54577bdd91a655f6a0848260405161092d92919061220e565b60405180910390a150505b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146109ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612449565b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff8416021790556040517f94df8c3a8087dce110e5fbc5acf380c83c94bbd31b2c8ed4c08e1396a696e1a890610a21908390612147565b60405180910390a150565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610ae1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612449565b73ffffffffffffffffffffffffffffffffffffffff808216600081815260036020526040902054909116908114610b44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612729565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604080822091909155517fafa759fb3c68e89eaaba359f0930ab40c24875b73cc9e2f6a38b0180019eb8f390610b9c908490612147565b60405180910390a15050565b6002602052600090815260409020805460019091015482565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526003602052604090205416151590565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610c1d6113de565b600114610c3e57738595bfb0d940dfedc98943fa8a907091203f25ee610c4f565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b6040517f0178b8bf00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff821690630178b8bf90610ca4908690600401612299565b60206040518083038186803b158015610cbc57600080fd5b505afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf49190611deb565b73ffffffffffffffffffffffffffffffffffffffff16633b3b57de846040518263ffffffff1660e01b8152600401610d2c9190612299565b60206040518083038186803b158015610d4457600080fd5b505afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c9190611deb565b9392505050565b6040517fd505accf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d505accf90610e0190889030908b908a908a908a908a906004016121c0565b600060405180830381600087803b158015610e1b57600080fd5b505af1158015610e2f573d6000803e3d6000fd5b50505050610e3e8588886113e2565b50505050505050565b600054610100900460ff1680610e605750610e6061153e565b80610e6e575060005460ff16155b610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906124b7565b600054610100900460ff16158015610f0a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610f1382610c12565b600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610f8257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff908116600090815260036020908152604080832054909316825260029052206001015490565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600360205260409020548116908316145b92915050565b73ffffffffffffffffffffffffffffffffffffffff908116600090815260036020908152604080832054909316825260029052205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f823383836113e2565b6040517fd505accf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d505accf906110fe90889030908d908a908a908a908a906004016121c0565b600060405180830381600087803b15801561111857600080fd5b505af115801561112c573d6000803e3d6000fd5b5050505061113e858b8b8b8b8b611544565b50505050505050505050565b611158338686868686611544565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146111ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612449565b60018190556040517f404663163d528ec45288abc4389b81bd96fabf858ff57577ebd4ee7f15d7b0a690610a21908390612299565b60015481565b6060815167ffffffffffffffff8111801561122357600080fd5b5060405190808252806020026020018201604052801561124d578160200160208202803683370190505b50905060005b82518110156112b15761127883828151811061126b57fe5b6020026020010151610c12565b82828151811061128457fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101611253565b50919050565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600360205260409020541615611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612480565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600360205260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001692851692909217909155517fcde75bd02c5f739608c891bcd9aa6809e6c4a7035ac7b9f3fd5fea756db7472490610b9c9084908490612168565b6000610d7c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611929565b4690565b73ffffffffffffffffffffffffffffffffffffffff80831660008181526003602052604090205490911614611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612412565b6114a573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016847f00000000000000000000000000000000000000000000000000000000000000008461196f565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600260205260409020546114d6908290611a12565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600260205260409081902091909155517f1275dbe2a271b2b822e60f1d44894fa5fb337e7e2dc6a200205b1a5b17c07d6490611531908490849061220e565b60405180910390a1505050565b303b1590565b600061158586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a5192505050565b6040517f02571be300000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906302571be3906115fa908490600401612299565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a9190611deb565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146116ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906126f2565b73ffffffffffffffffffffffffffffffffffffffff878116600090815260036020526040902054161561170d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104049061254b565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260026020526040902060018101541561176e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104049061236d565b6001548510156117aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906126bb565b61180c73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016897f00000000000000000000000000000000000000000000000000000000000000008861196f565b7f1275dbe2a271b2b822e60f1d44894fa5fb337e7e2dc6a200205b1a5b17c07d64888660405161183d92919061220e565b60405180910390a18481556001810182905573ffffffffffffffffffffffffffffffffffffffff8816600081815260036020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169092179091555b838110156118df5760008585838181106118b557fe5b90506020020160208101906118ca9190611dcf565b90506118d68a826112b7565b5060010161189f565b507f9ca7c9c762eff27b021608f232b4c4b8f9b8bf9a3d322297e47cc4209a67d5e28288888b896040516119179594939291906122a2565b60405180910390a15050505050505050565b60008184841115611967576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404919061231c565b505050900390565b610417846323b872dd60e01b8585856040516024016119909392919061218f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611a5e565b600082820183811015610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906123db565b6000611013826000611b14565b6060611ac0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611b7e9092919063ffffffff16565b8051909150156109385780806020019051810190611ade9190611fb7565b610938576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104049061265e565b600081835111611b2657506000611013565b6000611b328484611b95565b9050611b4384828501600101611b14565b611b4e858584611c0e565b604051602001611b5f92919061211d565b6040516020818303038152906040528051906020012091505092915050565b6060611b8d8484600085611c2a565b949350505050565b6000805b835181840114158015611c0157508381840181518110611bb557fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f2e0000000000000000000000000000000000000000000000000000000000000014155b15610d7c57600101611b99565b600083518284011115611c2057600080fd5b5091016020012090565b6060611c3585611d2f565b611c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906125b9565b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611c95919061212b565b60006040518083038185875af1925050503d8060008114611cd2576040519150601f19603f3d011682016040523d82523d6000602084013e611cd7565b606091505b50915091508115611ceb579150611b8d9050565b805115611cfb5780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404919061231c565b3b151590565b60008083601f840112611d46578182fd5b50813567ffffffffffffffff811115611d5d578182fd5b6020830191508360208083028501011115611d7757600080fd5b9250929050565b60008083601f840112611d8f578182fd5b50813567ffffffffffffffff811115611da6578182fd5b602083019150836020828501011115611d7757600080fd5b803560ff8116811461101357600080fd5b600060208284031215611de0578081fd5b8135610d7c816127d3565b600060208284031215611dfc578081fd5b8151610d7c816127d3565b60008060408385031215611e19578081fd5b8235611e24816127d3565b91506020830135611e34816127d3565b809150509250929050565b600080600060608486031215611e53578081fd5b8335611e5e816127d3565b92506020840135611e6e816127d3565b91506040840135611e7e816127d3565b809150509250925092565b60008060408385031215611e9b578182fd5b8235611ea6816127d3565b946020939093013593505050565b600080600080600080600060e0888a031215611ece578283fd5b8735611ed9816127d3565b9650602088013595506040880135611ef0816127d3565b945060608801359350611f068960808a01611dbe565b925060a0880135915060c0880135905092959891949750929550565b60006020808385031215611f34578182fd5b823567ffffffffffffffff811115611f4a578283fd5b8301601f81018513611f5a578283fd5b8035611f6d611f6882612787565b612760565b8181528381019083850185840285018601891015611f89578687fd5b8694505b83851015611fab578035835260019490940193918501918501611f8d565b50979650505050505050565b600060208284031215611fc8578081fd5b81518015158114610d7c578182fd5b600060208284031215611fe8578081fd5b5035919050565b600080600080600060608688031215612006578081fd5b853567ffffffffffffffff8082111561201d578283fd5b61202989838a01611d7e565b9097509550602088013594506040880135915080821115612048578283fd5b5061205588828901611d35565b969995985093965092949392505050565b6000806000806000806000806000806101008b8d031215612085578384fd5b8a3567ffffffffffffffff8082111561209c578586fd5b6120a88e838f01611d7e565b909c509a5060208d0135995060408d01359150808211156120c7578586fd5b506120d48d828e01611d35565b90985096505060608b01356120e8816127d3565b945060808b013593506120fe8c60a08d01611dbe565b925060c08b0135915060e08b013590509295989b9194979a5092959850565b918252602082015260400190565b6000825161213d8184602087016127a7565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff97881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561228257835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101612250565b50909695505050505050565b901515815260200190565b90815260200190565b600086825260806020830152846080830152848660a08401378060a0868401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f870116830101905073ffffffffffffffffffffffffffffffffffffffff841660408301528260608301529695505050505050565b600060208252825180602084015261233b8160408501602087016127a7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526012908201527f7265676973746572656420616c72656164790000000000000000000000000000604082015260600190565b6020808252600a908201527f6f6e6c792070726f787900000000000000000000000000000000000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252600b908201527f2172656769737465726564000000000000000000000000000000000000000000604082015260600190565b6020808252600f908201527f6f6e6c7920676f7665726e616e63650000000000000000000000000000000000604082015260600190565b60208082526016908201527f63616e277420737465616c20616e206164647265737300000000000000000000604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201527f647920696e697469616c697a6564000000000000000000000000000000000000606082015260800190565b60208082526016908201527f63616e7420756e7265676973746572206d617374657200000000000000000000604082015260600190565b60208082526013908201527f63616e7420726567697374657220616761696e00000000000000000000000000604082015260600190565b60208082526013908201527f4f6e6c7920637573746f6d2072656c6179657200000000000000000000000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252600c908201527f6f6e6c792072656c617965720000000000000000000000000000000000000000604082015260600190565b60208082526014908201527f6f6e6c79206f776e6572206f6620776f726b6572000000000000000000000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b6020808252600a908201527f216d696e5f7374616b6500000000000000000000000000000000000000000000604082015260600190565b6020808252600e908201527f6f6e6c7920656e73206f776e6572000000000000000000000000000000000000604082015260600190565b6020808252600e908201527f6d757374206265206d6173746572000000000000000000000000000000000000604082015260600190565b60405181810167ffffffffffffffff8111828210171561277f57600080fd5b604052919050565b600067ffffffffffffffff82111561279d578081fd5b5060209081020190565b60005b838110156127c25781810151838201526020016127aa565b838111156104175750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146127f557600080fd5b5056fea26469706673582212201ef11c99f45340bb22b7f2a5932d53d12ff829e053293e34e5d0e0392f7a995f64736f6c634300060c0033",
|
|
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c806385a29683116100ee578063d0fb020311610097578063e43fdb3c11610071578063e43fdb3c14610353578063eb4af04514610366578063f188768414610379578063f9e5423414610381576101ae565b8063d0fb020314610325578063d990231d1461032d578063e37e8bcc14610340576101ae565b8063ae53941c116100c8578063ae53941c146102df578063b69fd4ab146102ff578063b971a6bf14610312576101ae565b806385a29683146102b15780639498bd71146102c4578063adf898a4146102d7576101ae565b80634cb16c2e1161015b5780635300f841116101355780635300f84114610255578063541d5548146102765780635aa6e675146102965780635c23bdf51461029e576101ae565b80634cb16c2e146102325780634cf088d91461023a5780634d4efd0414610242576101ae565b80634048a2571161018c5780634048a257146101f957806345a11cec1461020c5780634ba16d9d1461021f576101ae565b80632e650649146101b35780633523dc85146101c85780633f15457f146101db575b600080fd5b6101c66101c1366004611e07565b6103a1565b005b6101c66101d6366004611dcf565b61041d565b6101e36105aa565b6040516101f09190612147565b60405180910390f35b6101e3610207366004611dcf565b6105ce565b6101c661021a366004611e3f565b6105f6565b6101c661022d366004611dcf565b61093d565b6101e3610a2c565b6101e3610a4e565b6101c6610250366004611dcf565b610a72565b610268610263366004611dcf565b610ba8565b6040516101f092919061211d565b610289610284366004611dcf565b610bc1565b6040516101f0919061228e565b6101e3610bee565b6101e36102ac366004611fd7565b610c12565b6101c66102bf366004611eb4565b610d83565b6101c66102d2366004611fd7565b610e47565b6101e3610f86565b6102f26102ed366004611dcf565b610faa565b6040516101f09190612299565b61028961030d366004611e07565b610fe5565b6102f2610320366004611dcf565b611019565b6101e3611051565b6101c661033b366004611e89565b611075565b6101c661034e366004612066565b611080565b6101c6610361366004611fef565b61114a565b6101c6610374366004611fd7565b61115f565b6102f2611203565b61039461038f366004611f22565b611209565b6040516101f09190612234565b33600081815260036020526040902054839073ffffffffffffffffffffffffffffffffffffffff80831691161461040d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906125f0565b60405180910390fd5b61041784846112b7565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8116331461049a5773ffffffffffffffffffffffffffffffffffffffff81811660009081526003602052604090205416331461049a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612627565b73ffffffffffffffffffffffffffffffffffffffff80821660008181526003602052604090205490911614156104fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612514565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260036020526040908190205490517fb2a8e18b9e887f502d65c1683e60b723fa582a6903ea4e8eb23907a19c1ce8a0926105569216908490612168565b60405180910390a173ffffffffffffffffffffffffffffffffffffffff16600090815260036020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff16331461064d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906123a4565b73ffffffffffffffffffffffffffffffffffffffff80841660009081526003602052604090205416806106df5773ffffffffffffffffffffffffffffffffffffffff83811660009081526003602052604090205416156106d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612582565b50610938565b8273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610744576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906125f0565b6040517f2efbf38400000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690632efbf384906107b9908690600401612147565b602060405180830381600087803b1580156107d357600080fd5b505af11580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190611deb565b73ffffffffffffffffffffffffffffffffffffffff85811660009081526002602052604090205491169150610840908261139c565b73ffffffffffffffffffffffffffffffffffffffff808616600090815260026020526040908190209290925590517f338610af0000000000000000000000000000000000000000000000000000000081527f00000000000000000000000000000000000000000000000000000000000000009091169063338610af906108ca908490600401612299565b600060405180830381600087803b1580156108e457600080fd5b505af11580156108f8573d6000803e3d6000fd5b505050507f659f33fc6677bebf3a9bf3101092792e31f35766d0358e54577bdd91a655f6a0848260405161092d92919061220e565b60405180910390a150505b505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146109ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612449565b600080547fffffffffffffffffffff0000000000000000000000000000000000000000ffff166201000073ffffffffffffffffffffffffffffffffffffffff8416021790556040517f94df8c3a8087dce110e5fbc5acf380c83c94bbd31b2c8ed4c08e1396a696e1a890610a21908390612147565b60405180910390a150565b60005462010000900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610ae1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612449565b73ffffffffffffffffffffffffffffffffffffffff808216600081815260036020526040902054909116908114610b44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612729565b73ffffffffffffffffffffffffffffffffffffffff811660009081526002602052604080822091909155517fafa759fb3c68e89eaaba359f0930ab40c24875b73cc9e2f6a38b0180019eb8f390610b9c908490612147565b60405180910390a15050565b6002602052600090815260409020805460019091015482565b73ffffffffffffffffffffffffffffffffffffffff90811660009081526003602052604090205416151590565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080610c1d6113de565b600114610c3e57738595bfb0d940dfedc98943fa8a907091203f25ee610c4f565b6e0c2e074ec69a0dfb2997ba6c7d2e1e5b6040517f0178b8bf00000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff821690630178b8bf90610ca4908690600401612299565b60206040518083038186803b158015610cbc57600080fd5b505afa158015610cd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cf49190611deb565b73ffffffffffffffffffffffffffffffffffffffff16633b3b57de846040518263ffffffff1660e01b8152600401610d2c9190612299565b60206040518083038186803b158015610d4457600080fd5b505afa158015610d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7c9190611deb565b9392505050565b6040517fd505accf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d505accf90610e0190889030908b908a908a908a908a906004016121c0565b600060405180830381600087803b158015610e1b57600080fd5b505af1158015610e2f573d6000803e3d6000fd5b50505050610e3e8588886113e2565b50505050505050565b600054610100900460ff1680610e605750610e6061153e565b80610e6e575060005460ff16155b610ea4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906124b7565b600054610100900460ff16158015610f0a57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909116610100171660011790555b610f1382610c12565b600060026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015610f8257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690555b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff908116600090815260036020908152604080832054909316825260029052206001015490565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600360205260409020548116908316145b92915050565b73ffffffffffffffffffffffffffffffffffffffff908116600090815260036020908152604080832054909316825260029052205490565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f823383836113e2565b6040517fd505accf00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063d505accf906110fe90889030908d908a908a908a908a906004016121c0565b600060405180830381600087803b15801561111857600080fd5b505af115801561112c573d6000803e3d6000fd5b5050505061113e858b8b8b8b8b611544565b50505050505050505050565b611158338686868686611544565b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146111ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612449565b60018190556040517f404663163d528ec45288abc4389b81bd96fabf858ff57577ebd4ee7f15d7b0a690610a21908390612299565b60015481565b6060815167ffffffffffffffff8111801561122357600080fd5b5060405190808252806020026020018201604052801561124d578160200160208202803683370190505b50905060005b82518110156112b15761127883828151811061126b57fe5b6020026020010151610c12565b82828151811061128457fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101611253565b50919050565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600360205260409020541615611316576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612480565b73ffffffffffffffffffffffffffffffffffffffff8181166000908152600360205260409081902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001692851692909217909155517fcde75bd02c5f739608c891bcd9aa6809e6c4a7035ac7b9f3fd5fea756db7472490610b9c9084908490612168565b6000610d7c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611929565b4690565b73ffffffffffffffffffffffffffffffffffffffff80831660008181526003602052604090205490911614611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161040490612412565b6114a573ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016847f00000000000000000000000000000000000000000000000000000000000000008461196f565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600260205260409020546114d6908290611a12565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600260205260409081902091909155517f1275dbe2a271b2b822e60f1d44894fa5fb337e7e2dc6a200205b1a5b17c07d6490611531908490849061220e565b60405180910390a1505050565b303b1590565b600061158586868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611a5192505050565b6040517f02571be300000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906302571be3906115fa908490600401612299565b60206040518083038186803b15801561161257600080fd5b505afa158015611626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164a9190611deb565b73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16146116ae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906126f2565b73ffffffffffffffffffffffffffffffffffffffff878116600090815260036020526040902054161561170d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104049061254b565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260026020526040902060018101541561176e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104049061236d565b6001548510156117aa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906126bb565b61180c73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016897f00000000000000000000000000000000000000000000000000000000000000008861196f565b7f1275dbe2a271b2b822e60f1d44894fa5fb337e7e2dc6a200205b1a5b17c07d64888660405161183d92919061220e565b60405180910390a18481556001810182905573ffffffffffffffffffffffffffffffffffffffff8816600081815260036020526040812080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169092179091555b838110156118df5760008585838181106118b557fe5b90506020020160208101906118ca9190611dcf565b90506118d68a826112b7565b5060010161189f565b507f9ca7c9c762eff27b021608f232b4c4b8f9b8bf9a3d322297e47cc4209a67d5e28288888b896040516119179594939291906122a2565b60405180910390a15050505050505050565b60008184841115611967576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404919061231c565b505050900390565b610417846323b872dd60e01b8585856040516024016119909392919061218f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611a5e565b600082820183811015610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906123db565b6000611013826000611b14565b6060611ac0826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611b7e9092919063ffffffff16565b8051909150156109385780806020019051810190611ade9190611fb7565b610938576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104049061265e565b600081835111611b2657506000611013565b6000611b328484611b95565b9050611b4384828501600101611b14565b611b4e858584611c0e565b604051602001611b5f92919061211d565b6040516020818303038152906040528051906020012091505092915050565b6060611b8d8484600085611c2a565b949350505050565b6000805b835181840114158015611c0157508381840181518110611bb557fe5b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f2e0000000000000000000000000000000000000000000000000000000000000014155b15610d7c57600101611b99565b600083518284011115611c2057600080fd5b5091016020012090565b6060611c3585611d2f565b611c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404906125b9565b600060608673ffffffffffffffffffffffffffffffffffffffff168587604051611c95919061212b565b60006040518083038185875af1925050503d8060008114611cd2576040519150601f19603f3d011682016040523d82523d6000602084013e611cd7565b606091505b50915091508115611ceb579150611b8d9050565b805115611cfb5780518082602001fd5b836040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610404919061231c565b3b151590565b60008083601f840112611d46578182fd5b50813567ffffffffffffffff811115611d5d578182fd5b6020830191508360208083028501011115611d7757600080fd5b9250929050565b60008083601f840112611d8f578182fd5b50813567ffffffffffffffff811115611da6578182fd5b602083019150836020828501011115611d7757600080fd5b803560ff8116811461101357600080fd5b600060208284031215611de0578081fd5b8135610d7c816127d3565b600060208284031215611dfc578081fd5b8151610d7c816127d3565b60008060408385031215611e19578081fd5b8235611e24816127d3565b91506020830135611e34816127d3565b809150509250929050565b600080600060608486031215611e53578081fd5b8335611e5e816127d3565b92506020840135611e6e816127d3565b91506040840135611e7e816127d3565b809150509250925092565b60008060408385031215611e9b578182fd5b8235611ea6816127d3565b946020939093013593505050565b600080600080600080600060e0888a031215611ece578283fd5b8735611ed9816127d3565b9650602088013595506040880135611ef0816127d3565b945060608801359350611f068960808a01611dbe565b925060a0880135915060c0880135905092959891949750929550565b60006020808385031215611f34578182fd5b823567ffffffffffffffff811115611f4a578283fd5b8301601f81018513611f5a578283fd5b8035611f6d611f6882612787565b612760565b8181528381019083850185840285018601891015611f89578687fd5b8694505b83851015611fab578035835260019490940193918501918501611f8d565b50979650505050505050565b600060208284031215611fc8578081fd5b81518015158114610d7c578182fd5b600060208284031215611fe8578081fd5b5035919050565b600080600080600060608688031215612006578081fd5b853567ffffffffffffffff8082111561201d578283fd5b61202989838a01611d7e565b9097509550602088013594506040880135915080821115612048578283fd5b5061205588828901611d35565b969995985093965092949392505050565b6000806000806000806000806000806101008b8d031215612085578384fd5b8a3567ffffffffffffffff8082111561209c578586fd5b6120a88e838f01611d7e565b909c509a5060208d0135995060408d01359150808211156120c7578586fd5b506120d48d828e01611d35565b90985096505060608b01356120e8816127d3565b945060808b013593506120fe8c60a08d01611dbe565b925060c08b0135915060e08b013590509295989b9194979a5092959850565b918252602082015260400190565b6000825161213d8184602087016127a7565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff92831681529116602082015260400190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b73ffffffffffffffffffffffffffffffffffffffff97881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b73ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561228257835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101612250565b50909695505050505050565b901515815260200190565b90815260200190565b600086825260806020830152846080830152848660a08401378060a0868401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f870116830101905073ffffffffffffffffffffffffffffffffffffffff841660408301528260608301529695505050505050565b600060208252825180602084015261233b8160408501602087016127a7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b60208082526012908201527f7265676973746572656420616c72656164790000000000000000000000000000604082015260600190565b6020808252600a908201527f6f6e6c792070726f787900000000000000000000000000000000000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b6020808252600b908201527f2172656769737465726564000000000000000000000000000000000000000000604082015260600190565b6020808252600f908201527f6f6e6c7920676f7665726e616e63650000000000000000000000000000000000604082015260600190565b60208082526016908201527f63616e277420737465616c20616e206164647265737300000000000000000000604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201527f647920696e697469616c697a6564000000000000000000000000000000000000606082015260800190565b60208082526016908201527f63616e7420756e7265676973746572206d617374657200000000000000000000604082015260600190565b60208082526013908201527f63616e7420726567697374657220616761696e00000000000000000000000000604082015260600190565b60208082526013908201527f4f6e6c7920637573746f6d2072656c6179657200000000000000000000000000604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252600c908201527f6f6e6c792072656c617965720000000000000000000000000000000000000000604082015260600190565b60208082526014908201527f6f6e6c79206f776e6572206f6620776f726b6572000000000000000000000000604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60408201527f6f74207375636365656400000000000000000000000000000000000000000000606082015260800190565b6020808252600a908201527f216d696e5f7374616b6500000000000000000000000000000000000000000000604082015260600190565b6020808252600e908201527f6f6e6c7920656e73206f776e6572000000000000000000000000000000000000604082015260600190565b6020808252600e908201527f6d757374206265206d6173746572000000000000000000000000000000000000604082015260600190565b60405181810167ffffffffffffffff8111828210171561277f57600080fd5b604052919050565b600067ffffffffffffffff82111561279d578081fd5b5060209081020190565b60005b838110156127c25781810151838201526020016127aa565b838111156104175750506000910152565b73ffffffffffffffffffffffffffffffffffffffff811681146127f557600080fd5b5056fea26469706673582212201ef11c99f45340bb22b7f2a5932d53d12ff829e053293e34e5d0e0392f7a995f64736f6c634300060c0033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|