638 lines
62 KiB
JSON
638 lines
62 KiB
JSON
{
|
|
"name": "IgneumStateOracle",
|
|
"solc": "0.8.28+commit.7893614a.Emscripten.clang",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "verifier_",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "evmChainId_",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "evmChainIdAfterFloor_",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint64",
|
|
"name": "number",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes32",
|
|
"name": "postRoot",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes32",
|
|
"name": "blockHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint64",
|
|
"name": "certIndex",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes32",
|
|
"name": "carrier",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "StateRoot",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "verifier",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "VerifierSet",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes[]",
|
|
"name": "headers",
|
|
"type": "bytes[]"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "checkpoint",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "checkHeaderPath",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "carrier",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "merkle",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "evmChainId",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "evmChainIdAfterFloor",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "header",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"name": "headerHash",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "leaf",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "index",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32[]",
|
|
"name": "siblings",
|
|
"type": "bytes32[]"
|
|
}
|
|
],
|
|
"name": "merkleRoot",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "h",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "owner",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "h",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"name": "parseHeader",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "parentsOff",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "parentCount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "merkle",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "pure",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "t",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"name": "payloadOf",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "off",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "len",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "pure",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "number",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "a",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes[]",
|
|
"name": "accountProof",
|
|
"type": "bytes[]"
|
|
}
|
|
],
|
|
"name": "provenAccount",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "exists",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "nonce",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balance",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "storageRoot",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "codeHash",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "number",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "a",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes[]",
|
|
"name": "accountProof",
|
|
"type": "bytes[]"
|
|
}
|
|
],
|
|
"name": "provenBalance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "balance",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "number",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "a",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "slot",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes[]",
|
|
"name": "accountProof",
|
|
"type": "bytes[]"
|
|
},
|
|
{
|
|
"internalType": "bytes[]",
|
|
"name": "storageProof",
|
|
"type": "bytes[]"
|
|
}
|
|
],
|
|
"name": "provenStorage",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "t",
|
|
"type": "bytes"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "recordIndex",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "readRecord",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "number",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "blockHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "postRoot",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "chainId",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"stateMutability": "pure",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "t",
|
|
"type": "bytes"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "payloadOff",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "payloadLen",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "segmentSection",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "off",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "len",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "pure",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "v",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "setVerifier",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "number",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"name": "stateRoot",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "postRoot",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "blockHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "carrier",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "certIndex",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "certIndex",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "bytes[]",
|
|
"name": "headers",
|
|
"type": "bytes[]"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "coinbaseTx",
|
|
"type": "bytes"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "leafIndex",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32[]",
|
|
"name": "siblings",
|
|
"type": "bytes32[]"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "recordIndex",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "submitStateRoot",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "number",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "postRoot",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "tx_",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"name": "transactionHash",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "trust",
|
|
"outputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"stateMutability": "pure",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "verifier",
|
|
"outputs": [
|
|
{
|
|
"internalType": "contract IIgneumCertificateVerifier",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "certIndex",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "bytes[]",
|
|
"name": "headers",
|
|
"type": "bytes[]"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "coinbaseTx",
|
|
"type": "bytes"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "leafIndex",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32[]",
|
|
"name": "siblings",
|
|
"type": "bytes32[]"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "recordIndex",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "verifyStateRoot",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "number",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "postRoot",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "blockHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "carrier",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x60c0346100c057601f6133c738819003918201601f19168301916001600160401b038311848410176100c4578084926060946040528339810103126100c05780516001600160a01b03811691908290036100c05761006b6040610064602084016100d8565b92016100d8565b5f80546001600160a01b0319908116909417905560018054909316331790925560805260a0526040516132da90816100ed823960805181818161054d0152611a50015260a05181818161098b0152611a960152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160401b03821682036100c05756fe60806040526004361015610011575f80fd5b5f3560e01c80632b7ac3f3146101545780632bf5baf51461014f5780634aefb0a11461014a5780634cf83845146101455780635437988d146101405780635bed35da1461013b57806362636ea11461013657806364d42b17146101315780636f9fdd661461012c57806372464ca0146101275780637b8affcd1461012257806389c936881461011d5780638a01db61146101185780638da5cb5b14610113578063b378a9971461010e578063c60c796414610109578063ecb2c31d14610104578063f2916104146100ff578063f837d413146100fa5763fa228c7f146100f5575f80fd5b610d94565b610d55565b610d1d565b610cda565b610cb2565b610b05565b610a38565b610a05565b61096c565b610951565b610926565b61059b565b61052e565b61050e565b610480565b610307565b610280565b610220565b6101a9565b3461017b575f36600319011261017b575f546040516001600160a01b039091168152602090f35b5f80fd5b600435906001600160401b038216820361017b57565b35906001600160401b038216820361017b57565b3461017b57602036600319011261017b5760806001600160401b036101d46101cf61017f565b610dd8565b9160409493945194855260208501526040840152166060820152f35b9181601f8401121561017b578235916001600160401b03831161017b576020808501948460051b01011161017b57565b3461017b57604036600319011261017b576004356001600160401b03811161017b5761025e61025560409236906004016101f0565b60243591610fdf565b82519182526020820152f35b600435906001600160a01b038216820361017b57565b3461017b5760a036600319011261017b5761029961017f565b602435906001600160a01b038216820361017b57604435916064356001600160401b03811161017b576102d09036906004016101f0565b60843593916001600160401b03851161017b576020956102f76102ff9636906004016101f0565b9590946110b1565b604051908152f35b3461017b57602036600319011261017b5761032061026a565b6001546001600160a01b0316330361037e575f80546001600160a01b0319166001600160a01b039290921691821790556040519081527f480b37e3d134e44cb444c9703493c7db564c707cb8a18cecea165f340431da1f90602090a1005b60405162461bcd60e51b81526020600482015260126024820152716f7261636c653a206f776e6572206f6e6c7960701b6044820152606490fd5b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176103ed57604052565b6103b8565b604051906104016080836103cc565b565b9061040160405192836103cc565b6001600160401b0381116103ed57601f01601f191660200190565b92919261043882610411565b9161044660405193846103cc565b82948184528183011161017b578281602093845f960137010152565b9080601f8301121561017b5781602061047d9335910161042c565b90565b3461017b57604036600319011261017b576004356001600160401b03811161017b576001600160401b036104c66104bd6080933690600401610462565b602435906113c2565b91846040959495519516855260208501526040840152166060820152f35b602060031982011261017b57600435906001600160401b03821161017b5761047d91600401610462565b3461017b5760206102ff610521366104e4565b61052961151c565b61203f565b3461017b575f36600319011261017b5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461017b575f36600319011261017b576109226102e06105be60405191826103cc565b6102bd81527f436865636b6564206f6e20636861696e3a20746865206365727469666963617460208201527f65207468726f7567682074686520696e7374616c6c656420766572696669657260408201527f2c206865616465722068617368657320616e6420706172656e74206c696e6b7360608201527f20746f207468652063657274696669656420636865636b706f696e742c20746860808201527f6520636f696e62617365206d65726b6c6520706174682c20746865207365676d60a08201527f656e74207265636f7264206c61796f75742c20616e6420746865206163636f7560c08201527f6e7420616e642073746f726167652070726f6f667320756e64657220706f737460e08201527f5f726f6f742e20547275737465642c206e6f7420636865636b6564206f6e20636101008201527f6861696e3a20746865207665726966696572277320766f746572207461626c656101208201527f20616e6420776569676874732061726520696e7374616c6c65642062792069746101408201527f73206465706c6f7965722028612073746174656420696e7075742c206e6f74206101608201527f726561642066726f6d2074686520636861696e293b20746865206167677265676101808201527f61746f72277320424c53207369676e6174757265206f766572207468652073656101a08201527f676d656e74207265636f726420616e6420746865205350312070726f6f6620626101c08201527f6568696e64206974732073746174656d656e7420617265206e6f7420766572696101e08201527f6669656420686572652c20736f206120726f6f74207265737473206f6e2074686102008201527f652061676772656761746f7227732073746174656d656e7420617320746865206102208201527f6e6f64657320636865636b20616e64207061792069742e20412073746f7265646102408201527f20726f6f742069732070726f76656e20737461746520756e6465722074686f736102608201527f6520617373756d7074696f6e733b20612062616c616e636520726561642066726102808201527f6f6d20697420697320657865637574656420616e642066696e616c69736564206102a08201527f73746174652c206e6f742061207061796d656e74206f7574636f6d652e0000006102c082015260405191829182610571565b0390f35b3461017b57606061093e610939366104e4565b611549565b9060405192835260208301526040820152f35b3461017b5760206102ff610964366104e4565b610529611613565b3461017b575f36600319011261017b5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b606060031982011261017b576004356001600160401b038116810361017b57916024356001600160a01b038116810361017b5791604435906001600160401b03821161017b57610a01916004016101f0565b9091565b3461017b576020610a2b610a23610a1b366109af565b939092610dd8565b5050506122de565b5050915050604051908152f35b3461017b575f36600319011261017b576001546040516001600160a01b039091168152602090f35b60c060031982011261017b57610a766004610195565b916024356001600160401b03811161017b5782610a95916004016101f0565b92909291604435916001600160401b03831161017b578060238401121561017b578260040135926001600160401b03841161017b57816024858301011161017b57602401929160643591608435906001600160401b03821161017b57610afd916004016101f0565b909160a43590565b3461017b57610b28610b1636610a60565b96889998969196959295949394611984565b9091936001600160401b03841692835f52600260205260405f2054868115918215610ca8575b505015610c4d57610c2e7fb650e8bdb81a79cecbd85292ffa6c38212615677fdc7f99f3332f642d3b1ce2d93610c00610b856103f2565b898152846020820152826040820152610baa8660608301906001600160401b03169052565b610bc5896001600160401b03165f52600260205260405f2090565b606060036001600160401b039284518155602085015160018201556040850151600282015501920151166001600160401b0319825416179055565b6040519384938985909493926001600160401b03906060936080840197845260208401521660408201520152565b0390a2604080516001600160401b039290921682526020820192909252f35b60405162461bcd60e51b815260206004820152602d60248201527f6f7261636c653a20616e6f7468657220726f6f742069732073746f726564206660448201526c6f72207468617420626c6f636b60981b6064820152608490fd5b149050865f610b4e565b3461017b57610cc8610cc3366104e4565b6116d5565b60408051928352602083019190915290f35b3461017b576080610cfc610ced36610a60565b97969096959195949294611984565b916001600160401b0360405194168452602084015260408301526060820152f35b3461017b5760a0610d33610a23610a1b366109af565b9260409291925194151585526020850152604084015260608301526080820152f35b3461017b57606036600319011261017b576004356001600160401b03811161017b57610d88610cc8913690600401610462565b60243560443591611bbc565b3461017b57606036600319011261017b576004356044356024356001600160401b03821161017b57602092610dd06102ff9336906004016101f0565b929091611d2a565b6001600160401b03165f52600260205260405f2080548015610e14576001820154926001600160401b0360036002850154940154169193929190565b60405162461bcd60e51b815260206004820152602560248201527f6f7261636c653a206e6f2070726f76656e20726f6f7420666f72207468617420604482015264626c6f636b60d81b6064820152608490fd5b634e487b7160e01b5f52603260045260245ffd5b9015610eb557803590601e198136030182121561017b5701908135916001600160401b03831161017b57602001823603811361017b579190565b610e67565b9190811015610eb55760051b81013590601e198136030182121561017b5701908135916001600160401b03831161017b57602001823603811361017b579190565b15610f0257565b60405162461bcd60e51b815260206004820152603c60248201527f686561646572733a20612068656164657220646f6573206e6f74206e616d652060448201527f7468652070726576696f7573206f6e65206173206120706172656e74000000006064820152608490fd5b15610f7457565b60405162461bcd60e51b815260206004820152603860248201527f686561646572733a20746865206c61737420686561646572206973206e6f742060448201527f7468652063657274696669656420636865636b706f696e7400000000000000006064820152608490fd5b919290925f935f93811561107c575f915f5b81811061100657505050906104019114610f6d565b61101b611014828486610eba565b369161042c565b9661102588611549565b92919690841597885f1461105c57505050506110449097610529611613565b93611052575b600101610ff1565b929650869261104a565b61104494509161107291611077938d959d611ddb565b610efb565b610964565b60405162461bcd60e51b815260206004820152600d60248201526c686561646572733a206e6f6e6560981b6044820152606490fd5b90610a236110c494929796959397610dd8565b509592915050156110d85761047d93611e87565b505090506110e4575f90565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a2073746f726167652070726f6f6620666f7220616e20616273656e74604482015267081858d8dbdd5b9d60c21b6064820152608490fd5b634e487b7160e01b5f52601160045260245ffd5b906001820180921161115c57565b61113a565b90600a820180921161115c57565b906012820180921161115c57565b906076820180921161115c57565b906008820180921161115c57565b906010820180921161115c57565b906094820180921161115c57565b600801908160081161115c57565b906024820180921161115c57565b906002820180921161115c57565b906022820180921161115c57565b601301908160131161115c57565b906013820180921161115c57565b608001908160801161115c57565b9190820180921161115c57565b9061024a82029180830461024a149015171561115c57565b600581901b91906001600160fb1b0381160361115c57565b908160011b918083046002149015171561115c57565b1561127157565b606460405162461bcd60e51b815260206004820152602060248201527f7265636f72643a20696e646578206265796f6e64207468652073656374696f6e6044820152fd5b156112bc57565b60405162461bcd60e51b815260206004820152603560248201527f7265636f72643a2073746174656d656e74206973206e6f7420666f7220746865604482015274207365676d656e742773206c61737420626c6f636b60581b6064820152608490fd5b1561132657565b60405162461bcd60e51b815260206004820152602960248201527f7265636f72643a20626c6f636b2068617368206973206e6f74207468652073746044820152686174656d656e74277360b81b6064820152608490fd5b1561138457565b60405162461bcd60e51b81526020600482015260166024820152751c9958dbdc990e881e995c9bc81c1bdcdd17dc9bdbdd60521b6044820152606490fd5b91906113d76113d0846116d5565b9085611bbc565b61024a81066114ca57826113f7611403926113fc6113f76114099761114e565b611224565b111561126a565b90611217565b61141b61141582611161565b84611f8d565b9061143761143161142b8361116f565b86611fb8565b9161117d565b926114bf61145d61145161144b8789611fb8565b60c01c90565b6001600160401b031690565b926114b86001600160401b036114a661148461145161144b61147e8c61118b565b8d611fb8565b996114a061149a6114948c611199565b83611fb8565b9a6111a7565b90611fb8565b96166001600160401b038916146112b5565b851461131f565b61040183151561137d565b60405162461bcd60e51b81526020600482015260166024820152750e4cac6dee4c87440e6cac6e8d2dedc40d8cadccee8d60531b6044820152606490fd5b604051906115176020836103cc565b5f8252565b6040519061152b6040836103cc565b600f82526e0a8e4c2dce6c2c6e8d2dedc90c2e6d608b1b6020830152565b906001600160401b0361155b83611f47565b1690600182106115ce5761157161145184611f65565b916012936115886115818561123c565b6012611217565b906001925b80841061159f575061047d9250611fb8565b90916115c4816114036115bf6115ba61145160019689611f8d565b61123c565b6111b5565b930192919061158d565b60405162461bcd60e51b815260206004820152601860248201527f6865616465723a206e6f20706172656e74206c6576656c7300000000000000006044820152606490fd5b604051906116226040836103cc565b6009825268084d8dec6d690c2e6d60bb1b6020830152565b1561164157565b60405162461bcd60e51b815260206004820152600f60248201526e18dbda5b98985cd94e881cda1bdc9d608a1b6044820152606490fd5b908151811015610eb5570160200190565b1561169057565b60405162461bcd60e51b815260206004820152601a60248201527f636f696e626173653a207061796c6f6164206f76657272756e730000000000006044820152606490fd5b9061ffff6116e283611f79565b166116ef61145184611f47565b90600a9060015f91109283159384925b878382106117f157611724945061171e93506114519250859150611f8d565b9161118b565b905f5b81811061176857505061173a91506111c3565b9061040161175461174e6114518587611f8d565b9361118b565b9361175f8486611217565b90511015611689565b611786611776859394611161565b6114036115bf611451838b611f8d565b93611798575b60010192919092611727565b926117db6001916117ab8851821061163a565b60ff6117d16117cb6117bd848c611678565b516001600160f81b03191690565b60f81c90565b166117e35761114e565b93905061178c565b6117ec906111df565b61114e565b9161181661182092936114036115bf61145161180f86999a9b6111c3565b8094611f8d565b906118465761118b565b93611832575b600101908492916116ff565b9261183e6001916111d1565b939050611826565b61184f9061114e565b61118b565b9081602091031261017b575190565b6040513d5f823e3d90fd5b1561187557565b60405162461bcd60e51b8152602060048201526024808201527f6f7261636c653a206e6f206365727469666963617465206174207468617420696044820152630dcc8caf60e31b6064820152608490fd5b156118cd57565b60405162461bcd60e51b815260206004820152603a60248201527f6d65726b6c653a207061746820646f6573206e6f74207265616368207468652060448201527f63617272696572277320686173685f6d65726b6c655f726f6f740000000000006064820152608490fd5b1561193f57565b60405162461bcd60e51b815260206004820152601a60248201527f7265636f72643a2073746174656d656e7420636861696e2069640000000000006044820152606490fd5b9660206119dd979493929996959a986119b26119a65f5460018060a01b031690565b6001600160a01b031690565b60405180809b819463b1b0945360e01b8352600483019190916001600160401b036020820193169052565b03915afa938415611b0357611a20611a16611a3896611a32956104019d611a3d9c5f93611ad2575b50611a1183151561186e565b610fdf565b95909c369161042c565b95611a2d8761052961151c565b611d2a565b146118c6565b6113c2565b9592939194909493956001600160401b037f000000000000000000000000000000000000000000000000000000000000000016908115918215611abf575b508115611a89575b50611938565b90506001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000169116145f611a83565b6001600160401b0382161491505f611a7b565b611af591935060203d602011611afc575b611aed81836103cc565b810190611854565b915f611a05565b503d611ae3565b611863565b15611b0f57565b60405162461bcd60e51b815260206004820152601960248201527f636f696e626173653a20736372697074206f76657272756e73000000000000006044820152606490fd5b15611b5b57565b60405162461bcd60e51b815260206004820152601960248201527f636f696e626173653a206e6f2049474e532073656374696f6e000000000000006044820152606490fd5b60071981019190821161115c57565b9190820391821161115c57565b90929160138110611c505761047d91611c2d611c26611c1f611c3594611c19611bf7611bf0611bea8c61116f565b88611678565b5160f81c90565b611c0b83611c04836111ed565b1115611b08565b611c148b6111fb565b611217565b98611217565b8784612425565b86836124d9565b948591612534565b611c4184821415611b54565b611c4b8194611ba0565b611baf565b60405162461bcd60e51b815260206004820152601b60248201527f636f696e626173653a207061796c6f616420746f6f2073686f727400000000006044820152606490fd5b9190811015610eb55760051b0190565b60405190611cb46040836103cc565b601082526f09acae4d6d8ca84e4c2dcc6d090c2e6d60831b6020830152565b15611cda57565b60405162461bcd60e51b815260206004820152602260248201527f6d65726b6c653a206c65616620696e646578206265796f6e64207468652070616044820152610e8d60f31b6064820152608490fd5b939290915f915b808310611d45575050506104019015611cd3565b90919294611da0600191828816155f14611da957611d9990611d91611d6b888789611c95565b60408051602081019490945290359083015281606081015b03601f1981018352826103cc565b610529611ca5565b9660011c90565b93019190611d31565b611dd690611d91611dbb888789611c95565b60408051913560208301528101929092528160608101611d83565b611d99565b909291925f5b848110611df15750505050505f90565b6001600160fb1b038116810361115c578060051b820180831161115c57611e19859185611fb8565b14611e2657600101611de1565b5050505050600190565b15611e3757565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a2073746f726167652076616c7565206973206e6f74206120737472696044820152616e6760f01b6064820152608490fd5b611eaf9392916040516020810191825260208152611ea66040826103cc565b51902090612865565b9015611f0657611ebe81612dc6565b90815115151580611ee7575b91611ed761047d93611e30565b6060604082015191015191612fc6565b506040820151916060810151830180931161115c578151909214611eca565b505f90565b15611f1257565b60405162461bcd60e51b815260206004820152600d60248201526c1a195859195c8e881cda1bdc9d609a1b6044820152606490fd5b602261047d91611f5b8151600a1115611f0b565b015160c01c613054565b602a61047d91611f5b815160121115611f0b565b602061047d91611f5b815160081115611f0b565b90600881019081811161115c5782611fad60209361047d95511015611f0b565b01015160c01c613054565b90602081019182821161115c57611fd460209382511015611f0b565b01015190565b15611fe157565b60405162461bcd60e51b81526020600482015260136024820152720c4d8c2d6ca64c47440d6caf240d8cadccee8d606b1b6044820152606490fd5b604051610100919061202e83826103cc565b60d5815291601f1901366020840137565b6120548151801515908161223b575b50611fda565b61205c61201c565b91612068610100610403565b676a09e667f3bcc908815267bb67ae8584caa73b6020820152673c6ef372fe94f82b604082015267a54ff53a5f1d36f1606082015267510e527fade682d16080820152679b05688c2b3e6c1f60a0820152671f83d9abfb41bd6b60c0820152675be0cd19137e217960e082015261211d63010100206121016120f186516001600160401b031690565b60081b67ffffffffffffff001690565b83516001600160401b0316181882906001600160401b03169052565b600c60238501535f5b600881106121f45750508051916121518460c45f918260648201528260848201528260a48201520152565b80516020606486019201825e6121688315856130c4565b5f5b83811061217c57505050506024015190565b8061218a6121ab9286611baf565b90608082116121eb575b608082106121c8575b81602082870101855e611217565b906121c26121b883611209565b858414908761313a565b9061216a565b6121e68760c45f918260648201528260848201528260a48201520152565b61219d565b60809150612194565b8060051b8201515f905f905b6008821061222057505060c01b600382901b860160240152600101612126565b909160019060ff838560031b1c169060081b17920190612200565b6040915011155f61204e565b1561224e57565b60405162461bcd60e51b815260206004820152601a60248201527f6d70743a206163636f756e74206973206e6f742061206c6973740000000000006044820152606490fd5b1561229a57565b606460405162461bcd60e51b815260206004820152602060248201527f6d70743a206163636f756e7420686173206e6f7420666f7572206669656c64736044820152fd5b60405160609290921b6bffffffffffffffffffffffff191660208301908152612310949392611ea68160348101611d83565b9190156124185761232082612dc6565b90815161232c90151590565b61233590612247565b604082019182516123469085612ecc565b91604083019485519360600193845161235e91611217565b6123689082612ecc565b94604086019586519060600190815161238091611217565b61238a9084612ecc565b9060408201968751926060019283516123a291611217565b6123ac9086612ecc565b9360408501978851956060019586516123c491611217565b915190606001516123d491611217565b146123de90612293565b6001995190516123ee9186612fc6565b975190516123fc9185612fc6565b9551905161240a9184613150565b935190519061047d92613150565b5f91508190819081908190565b600882019081831161115c57839182106124d357016324a3a72360e11b63ffffffff60e01b601c83015116036124ce578260071981011161115c57601801516124a59060e081901c9061249b9060c81c63ff000000165b62ff0000600884901b161761ff00600884901c16179160181c60ff1690565b1763ffffffff1690565b906124b96124b28361118b565b9184611baf565b106124ca57611c4b61047d92611ba0565b5090565b505090565b50505090565b600882019081831161115c57839182106124d3570163049474e560e41b63ffffffff60e01b601c83015116036124ce578260071981011161115c57601801516124a59060e081901c9061249b9060c81c63ff0000001661247c565b600882019081831161115c57839182106124d357016349474e5360e01b63ffffffff60e01b601c83015116036124ce578260071981011161115c57601801516124a59060e081901c9061249b9060c81c63ff0000001661247c565b1561259657565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a206e6f206e6f64657320666f722061206e6f6e2d656d70747920726f6044820152611bdd60f21b6064820152608490fd5b156125ed57565b60405162461bcd60e51b815260206004820152602360248201527f6d70743a20746865206669727374206e6f6465206973206e6f742074686520726044820152621bdbdd60ea1b6064820152608490fd5b1561264557565b60405162461bcd60e51b815260206004820152601760248201527f6d70743a206e6f6465206973206e6f742061206c6973740000000000000000006044820152606490fd5b6040519061022061269b81846103cc565b368337565b156126a757565b60405162461bcd60e51b81526020600482015260136024820152726d70743a20746f6f206d616e79206974656d7360681b6044820152606490fd5b5f19811461115c5760010190565b906011811015610eb55760051b0190565b60405190608082018281106001600160401b038211176103ed576040525f6060838281528260208201528260408201520152565b1561273c57565b60405162461bcd60e51b815260206004820152600d60248201526c0dae0e87440c4c2c840e0c2e8d609b1b6044820152606490fd5b1561277857565b60405162461bcd60e51b81526020600482015260126024820152716d70743a20626164207265666572656e636560701b6044820152606490fd5b156127b957565b60405162461bcd60e51b815260206004820152602160248201527f6d70743a2061207265666572656e636564206e6f6465206973206d697373696e6044820152606760f81b6064820152608490fd5b1561280f57565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a206e6f646520646f6573206e6f74206861736820746f20697473207260448201526765666572656e636560c01b6064820152608490fd5b939291938215612ccb57612891612883611014858897969597610e7b565b9182516020840120146125e6565b5f918290600190825b605084106128dc5760405162461bcd60e51b815260206004820152601260248201527106d70743a207061746820746f6f20646565760741b6044820152606490fd5b6128e69085612ecc565b946128f96128f48751151590565b61263e565b61290161268a565b965f986040880197606089519101905b61291e8a51835190611217565b811015612979579061296d8c8361295c8e9f9d9e9d61291e968e612947601161294c94106126a0565b612ecc565b92612956816126e2565b9e6126f0565b526060604082015191015190611217565b9a999b9a909150612911565b505096509796909694919461298c612701565b5060118103612aad575060408714612a60576129c86129c16129ce926129bb6129b58b8b613199565b60ff1690565b906126f0565b5183612ecc565b9661114e565b955b8051612a505760608101805115612a3c57602092916129f3846040935114612771565b015101015192612a048183106127b2565b612a2c612a1e611014612a16856126e2565b94848c610eba565b948551602087012014612808565b60015f935b01929695949661289a565b505050505050505090505f9061047d611508565b6020600191959295015193612a31565b93509596505050612a7f9250612a7891506102000190565b5182612ecc565b9060608201805115612aa0576040612a9b9301519051916131c0565b600191565b5050505f9061047d611508565b909690600203612c8657612ac2875183612ecc565b90612ad4612ad08351151590565b1590565b80612c79575b612ae390612735565b6040820190612b126060612b0a612b016117cb6117bd87518a611678565b60041c600f1690565b940151611254565b6001841615801591612b2e91612c705760ff60015b1690611baf565b925f5b848110612b9357505050612b54612b4d600293612b5b93611217565b9960200190565b5184612ecc565b9116156129d05796975094925050506040915003612b87578160606040612a9b940151910151916131c0565b50505f9061047d611508565b5f9c979b96999a92939495989c50835f14612c5857896001612bd86117cb6117bd612bc260ff855b1687611217565b94612bd288516114038860011c90565b90611678565b9116612c505760041c600f165b6040612bf18388611217565b1090811591612c2c575b50612c14576001019b97949392919998959a969b612b31565b50505050505050955050505050505f9061047d611508565b905060ff612c466129b5612c40858a611217565b87613199565b911614155f612bfb565b600f16612be5565b896001612bd86117cb6117bd612bc260ff6002612bbb565b60ff6002612b27565b5060608201511515612ada565b60405162461bcd60e51b815260206004820181905260248201527f6d70743a206e6f6465207769746820616e206f6464206974656d20636f756e746044820152606490fd5b9050612cfc9293507f56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42191501461258f565b5f9061047d611508565b15612d0d57565b60405162461bcd60e51b815260206004820152600a6024820152691c9b1c0e881cda1bdc9d60b21b6044820152606490fd5b60ff60f6199116019060ff821161115c57565b60ff60bf199116019060ff821161115c57565b60ff60b6199116019060ff821161115c57565b60ff607f199116019060ff821161115c57565b15612d9257565b60405162461bcd60e51b815260206004820152600c60248201526b3936381d1037bb32b9393ab760a11b6044820152606490fd5b90610401612dd2612701565b92612ddf81511515612d06565b612def6117cb6117bd5f84611678565b5f602086015260ff81166080811015612e2e5750505f6040850152600160608501525b612e256040850151606086015190611217565b90511015612d8b565b60b8811015612e5c57506129b5612e4491612d78565b6060850152612e525f61114e565b6040850152612e12565b60c0811015612e965750612e756129b5612e5292612d65565b612e8881612e825f61114e565b856131fb565b6060870152611c145f61114e565b60f81115612eb4576129b5612e4491612eaf8760019052565b612d52565b612ec36129b5612e5292612d3f565b60018652612e75565b61040190929192612edb612701565b93612ee882518210612d06565b612ef86117cb6117bd8385611678565b9080602087015260ff8216608081105f14612f29575060408601819052600160608701819052612e25925090611217565b60b8811015612f4c5750612f426129b5612e5293612d78565b606087015261114e565b60c0811015612f865750611c14612f686129b5612e5294612d65565b91612f7c83612f768361114e565b876131fb565b606089015261114e565b60f81115612fa257612f426129b5612e5293612eaf8960019052565b611c14612fb46129b5612e5294612d3f565b6001885291612f7c83612f768361114e565b9092915f93602082116130175791905f925b818410612fe55750505050565b9091929460081b8582019081831161115c5761300c6129b56117cb6117bd60019589611678565b179501929190612fd8565b60405162461bcd60e51b8152602060048201526015602482015274726c703a20696e746567657220746f6f207769646560581b6044820152606490fd5b6130c067ff00000000000000603883901b8116600884811b64ff000000001690601886901b65ff00000000001690602887901b66ff000000000000169063ff0000009088901c16931717171762ff0000601885901c161761ff00602885901c1617921660381c60ff1690565b1790565b6040916130d16080613054565b60c01b60e483015261312e575b60d5602060248301920160095afa156130f357565b60405162461bcd60e51b8152602060048201526013602482015272626c616b6532623a20707265636f6d70696c6560681b6044820152606490fd5b600160f48201536130de565b90916130d16001600160401b0360409416613054565b9160200361316057016020015190565b60405162461bcd60e51b8152602060048201526011602482015270726c703a206e6f7420333220627974657360781b6044820152606490fd5b8160011c906020821015610eb557901a906001166131ba5760041c60ff1690565b600f1690565b92919060206131ce83610411565b916131dc60405193846103cc565b8383526131e884610411565b8284019390601f1901368537950101905e565b9291905f93602083111580613290575b156132595791905f925b8284106132225750505050565b9091929461323260019160081b90565b61324e6129b56117cb6117bd6132488b89611217565b87611678565b179501929190613215565b60405162461bcd60e51b815260206004820152600f60248201526e0e4d8e07440c4c2c840d8cadccee8d608b1b6044820152606490fd5b5082820180831161115c578151101561320b56fea26469706673582212207bb97f0d14e08885c3e281d4516c9d0689c2c0e5152ebbff40e6eba4533cf4fc64736f6c634300081c0033",
|
|
"deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c80632b7ac3f3146101545780632bf5baf51461014f5780634aefb0a11461014a5780634cf83845146101455780635437988d146101405780635bed35da1461013b57806362636ea11461013657806364d42b17146101315780636f9fdd661461012c57806372464ca0146101275780637b8affcd1461012257806389c936881461011d5780638a01db61146101185780638da5cb5b14610113578063b378a9971461010e578063c60c796414610109578063ecb2c31d14610104578063f2916104146100ff578063f837d413146100fa5763fa228c7f146100f5575f80fd5b610d94565b610d55565b610d1d565b610cda565b610cb2565b610b05565b610a38565b610a05565b61096c565b610951565b610926565b61059b565b61052e565b61050e565b610480565b610307565b610280565b610220565b6101a9565b3461017b575f36600319011261017b575f546040516001600160a01b039091168152602090f35b5f80fd5b600435906001600160401b038216820361017b57565b35906001600160401b038216820361017b57565b3461017b57602036600319011261017b5760806001600160401b036101d46101cf61017f565b610dd8565b9160409493945194855260208501526040840152166060820152f35b9181601f8401121561017b578235916001600160401b03831161017b576020808501948460051b01011161017b57565b3461017b57604036600319011261017b576004356001600160401b03811161017b5761025e61025560409236906004016101f0565b60243591610fdf565b82519182526020820152f35b600435906001600160a01b038216820361017b57565b3461017b5760a036600319011261017b5761029961017f565b602435906001600160a01b038216820361017b57604435916064356001600160401b03811161017b576102d09036906004016101f0565b60843593916001600160401b03851161017b576020956102f76102ff9636906004016101f0565b9590946110b1565b604051908152f35b3461017b57602036600319011261017b5761032061026a565b6001546001600160a01b0316330361037e575f80546001600160a01b0319166001600160a01b039290921691821790556040519081527f480b37e3d134e44cb444c9703493c7db564c707cb8a18cecea165f340431da1f90602090a1005b60405162461bcd60e51b81526020600482015260126024820152716f7261636c653a206f776e6572206f6e6c7960701b6044820152606490fd5b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176103ed57604052565b6103b8565b604051906104016080836103cc565b565b9061040160405192836103cc565b6001600160401b0381116103ed57601f01601f191660200190565b92919261043882610411565b9161044660405193846103cc565b82948184528183011161017b578281602093845f960137010152565b9080601f8301121561017b5781602061047d9335910161042c565b90565b3461017b57604036600319011261017b576004356001600160401b03811161017b576001600160401b036104c66104bd6080933690600401610462565b602435906113c2565b91846040959495519516855260208501526040840152166060820152f35b602060031982011261017b57600435906001600160401b03821161017b5761047d91600401610462565b3461017b5760206102ff610521366104e4565b61052961151c565b61203f565b3461017b575f36600319011261017b5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461017b575f36600319011261017b576109226102e06105be60405191826103cc565b6102bd81527f436865636b6564206f6e20636861696e3a20746865206365727469666963617460208201527f65207468726f7567682074686520696e7374616c6c656420766572696669657260408201527f2c206865616465722068617368657320616e6420706172656e74206c696e6b7360608201527f20746f207468652063657274696669656420636865636b706f696e742c20746860808201527f6520636f696e62617365206d65726b6c6520706174682c20746865207365676d60a08201527f656e74207265636f7264206c61796f75742c20616e6420746865206163636f7560c08201527f6e7420616e642073746f726167652070726f6f667320756e64657220706f737460e08201527f5f726f6f742e20547275737465642c206e6f7420636865636b6564206f6e20636101008201527f6861696e3a20746865207665726966696572277320766f746572207461626c656101208201527f20616e6420776569676874732061726520696e7374616c6c65642062792069746101408201527f73206465706c6f7965722028612073746174656420696e7075742c206e6f74206101608201527f726561642066726f6d2074686520636861696e293b20746865206167677265676101808201527f61746f72277320424c53207369676e6174757265206f766572207468652073656101a08201527f676d656e74207265636f726420616e6420746865205350312070726f6f6620626101c08201527f6568696e64206974732073746174656d656e7420617265206e6f7420766572696101e08201527f6669656420686572652c20736f206120726f6f74207265737473206f6e2074686102008201527f652061676772656761746f7227732073746174656d656e7420617320746865206102208201527f6e6f64657320636865636b20616e64207061792069742e20412073746f7265646102408201527f20726f6f742069732070726f76656e20737461746520756e6465722074686f736102608201527f6520617373756d7074696f6e733b20612062616c616e636520726561642066726102808201527f6f6d20697420697320657865637574656420616e642066696e616c69736564206102a08201527f73746174652c206e6f742061207061796d656e74206f7574636f6d652e0000006102c082015260405191829182610571565b0390f35b3461017b57606061093e610939366104e4565b611549565b9060405192835260208301526040820152f35b3461017b5760206102ff610964366104e4565b610529611613565b3461017b575f36600319011261017b5760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b606060031982011261017b576004356001600160401b038116810361017b57916024356001600160a01b038116810361017b5791604435906001600160401b03821161017b57610a01916004016101f0565b9091565b3461017b576020610a2b610a23610a1b366109af565b939092610dd8565b5050506122de565b5050915050604051908152f35b3461017b575f36600319011261017b576001546040516001600160a01b039091168152602090f35b60c060031982011261017b57610a766004610195565b916024356001600160401b03811161017b5782610a95916004016101f0565b92909291604435916001600160401b03831161017b578060238401121561017b578260040135926001600160401b03841161017b57816024858301011161017b57602401929160643591608435906001600160401b03821161017b57610afd916004016101f0565b909160a43590565b3461017b57610b28610b1636610a60565b96889998969196959295949394611984565b9091936001600160401b03841692835f52600260205260405f2054868115918215610ca8575b505015610c4d57610c2e7fb650e8bdb81a79cecbd85292ffa6c38212615677fdc7f99f3332f642d3b1ce2d93610c00610b856103f2565b898152846020820152826040820152610baa8660608301906001600160401b03169052565b610bc5896001600160401b03165f52600260205260405f2090565b606060036001600160401b039284518155602085015160018201556040850151600282015501920151166001600160401b0319825416179055565b6040519384938985909493926001600160401b03906060936080840197845260208401521660408201520152565b0390a2604080516001600160401b039290921682526020820192909252f35b60405162461bcd60e51b815260206004820152602d60248201527f6f7261636c653a20616e6f7468657220726f6f742069732073746f726564206660448201526c6f72207468617420626c6f636b60981b6064820152608490fd5b149050865f610b4e565b3461017b57610cc8610cc3366104e4565b6116d5565b60408051928352602083019190915290f35b3461017b576080610cfc610ced36610a60565b97969096959195949294611984565b916001600160401b0360405194168452602084015260408301526060820152f35b3461017b5760a0610d33610a23610a1b366109af565b9260409291925194151585526020850152604084015260608301526080820152f35b3461017b57606036600319011261017b576004356001600160401b03811161017b57610d88610cc8913690600401610462565b60243560443591611bbc565b3461017b57606036600319011261017b576004356044356024356001600160401b03821161017b57602092610dd06102ff9336906004016101f0565b929091611d2a565b6001600160401b03165f52600260205260405f2080548015610e14576001820154926001600160401b0360036002850154940154169193929190565b60405162461bcd60e51b815260206004820152602560248201527f6f7261636c653a206e6f2070726f76656e20726f6f7420666f72207468617420604482015264626c6f636b60d81b6064820152608490fd5b634e487b7160e01b5f52603260045260245ffd5b9015610eb557803590601e198136030182121561017b5701908135916001600160401b03831161017b57602001823603811361017b579190565b610e67565b9190811015610eb55760051b81013590601e198136030182121561017b5701908135916001600160401b03831161017b57602001823603811361017b579190565b15610f0257565b60405162461bcd60e51b815260206004820152603c60248201527f686561646572733a20612068656164657220646f6573206e6f74206e616d652060448201527f7468652070726576696f7573206f6e65206173206120706172656e74000000006064820152608490fd5b15610f7457565b60405162461bcd60e51b815260206004820152603860248201527f686561646572733a20746865206c61737420686561646572206973206e6f742060448201527f7468652063657274696669656420636865636b706f696e7400000000000000006064820152608490fd5b919290925f935f93811561107c575f915f5b81811061100657505050906104019114610f6d565b61101b611014828486610eba565b369161042c565b9661102588611549565b92919690841597885f1461105c57505050506110449097610529611613565b93611052575b600101610ff1565b929650869261104a565b61104494509161107291611077938d959d611ddb565b610efb565b610964565b60405162461bcd60e51b815260206004820152600d60248201526c686561646572733a206e6f6e6560981b6044820152606490fd5b90610a236110c494929796959397610dd8565b509592915050156110d85761047d93611e87565b505090506110e4575f90565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a2073746f726167652070726f6f6620666f7220616e20616273656e74604482015267081858d8dbdd5b9d60c21b6064820152608490fd5b634e487b7160e01b5f52601160045260245ffd5b906001820180921161115c57565b61113a565b90600a820180921161115c57565b906012820180921161115c57565b906076820180921161115c57565b906008820180921161115c57565b906010820180921161115c57565b906094820180921161115c57565b600801908160081161115c57565b906024820180921161115c57565b906002820180921161115c57565b906022820180921161115c57565b601301908160131161115c57565b906013820180921161115c57565b608001908160801161115c57565b9190820180921161115c57565b9061024a82029180830461024a149015171561115c57565b600581901b91906001600160fb1b0381160361115c57565b908160011b918083046002149015171561115c57565b1561127157565b606460405162461bcd60e51b815260206004820152602060248201527f7265636f72643a20696e646578206265796f6e64207468652073656374696f6e6044820152fd5b156112bc57565b60405162461bcd60e51b815260206004820152603560248201527f7265636f72643a2073746174656d656e74206973206e6f7420666f7220746865604482015274207365676d656e742773206c61737420626c6f636b60581b6064820152608490fd5b1561132657565b60405162461bcd60e51b815260206004820152602960248201527f7265636f72643a20626c6f636b2068617368206973206e6f74207468652073746044820152686174656d656e74277360b81b6064820152608490fd5b1561138457565b60405162461bcd60e51b81526020600482015260166024820152751c9958dbdc990e881e995c9bc81c1bdcdd17dc9bdbdd60521b6044820152606490fd5b91906113d76113d0846116d5565b9085611bbc565b61024a81066114ca57826113f7611403926113fc6113f76114099761114e565b611224565b111561126a565b90611217565b61141b61141582611161565b84611f8d565b9061143761143161142b8361116f565b86611fb8565b9161117d565b926114bf61145d61145161144b8789611fb8565b60c01c90565b6001600160401b031690565b926114b86001600160401b036114a661148461145161144b61147e8c61118b565b8d611fb8565b996114a061149a6114948c611199565b83611fb8565b9a6111a7565b90611fb8565b96166001600160401b038916146112b5565b851461131f565b61040183151561137d565b60405162461bcd60e51b81526020600482015260166024820152750e4cac6dee4c87440e6cac6e8d2dedc40d8cadccee8d60531b6044820152606490fd5b604051906115176020836103cc565b5f8252565b6040519061152b6040836103cc565b600f82526e0a8e4c2dce6c2c6e8d2dedc90c2e6d608b1b6020830152565b906001600160401b0361155b83611f47565b1690600182106115ce5761157161145184611f65565b916012936115886115818561123c565b6012611217565b906001925b80841061159f575061047d9250611fb8565b90916115c4816114036115bf6115ba61145160019689611f8d565b61123c565b6111b5565b930192919061158d565b60405162461bcd60e51b815260206004820152601860248201527f6865616465723a206e6f20706172656e74206c6576656c7300000000000000006044820152606490fd5b604051906116226040836103cc565b6009825268084d8dec6d690c2e6d60bb1b6020830152565b1561164157565b60405162461bcd60e51b815260206004820152600f60248201526e18dbda5b98985cd94e881cda1bdc9d608a1b6044820152606490fd5b908151811015610eb5570160200190565b1561169057565b60405162461bcd60e51b815260206004820152601a60248201527f636f696e626173653a207061796c6f6164206f76657272756e730000000000006044820152606490fd5b9061ffff6116e283611f79565b166116ef61145184611f47565b90600a9060015f91109283159384925b878382106117f157611724945061171e93506114519250859150611f8d565b9161118b565b905f5b81811061176857505061173a91506111c3565b9061040161175461174e6114518587611f8d565b9361118b565b9361175f8486611217565b90511015611689565b611786611776859394611161565b6114036115bf611451838b611f8d565b93611798575b60010192919092611727565b926117db6001916117ab8851821061163a565b60ff6117d16117cb6117bd848c611678565b516001600160f81b03191690565b60f81c90565b166117e35761114e565b93905061178c565b6117ec906111df565b61114e565b9161181661182092936114036115bf61145161180f86999a9b6111c3565b8094611f8d565b906118465761118b565b93611832575b600101908492916116ff565b9261183e6001916111d1565b939050611826565b61184f9061114e565b61118b565b9081602091031261017b575190565b6040513d5f823e3d90fd5b1561187557565b60405162461bcd60e51b8152602060048201526024808201527f6f7261636c653a206e6f206365727469666963617465206174207468617420696044820152630dcc8caf60e31b6064820152608490fd5b156118cd57565b60405162461bcd60e51b815260206004820152603a60248201527f6d65726b6c653a207061746820646f6573206e6f74207265616368207468652060448201527f63617272696572277320686173685f6d65726b6c655f726f6f740000000000006064820152608490fd5b1561193f57565b60405162461bcd60e51b815260206004820152601a60248201527f7265636f72643a2073746174656d656e7420636861696e2069640000000000006044820152606490fd5b9660206119dd979493929996959a986119b26119a65f5460018060a01b031690565b6001600160a01b031690565b60405180809b819463b1b0945360e01b8352600483019190916001600160401b036020820193169052565b03915afa938415611b0357611a20611a16611a3896611a32956104019d611a3d9c5f93611ad2575b50611a1183151561186e565b610fdf565b95909c369161042c565b95611a2d8761052961151c565b611d2a565b146118c6565b6113c2565b9592939194909493956001600160401b037f000000000000000000000000000000000000000000000000000000000000000016908115918215611abf575b508115611a89575b50611938565b90506001600160401b03807f0000000000000000000000000000000000000000000000000000000000000000169116145f611a83565b6001600160401b0382161491505f611a7b565b611af591935060203d602011611afc575b611aed81836103cc565b810190611854565b915f611a05565b503d611ae3565b611863565b15611b0f57565b60405162461bcd60e51b815260206004820152601960248201527f636f696e626173653a20736372697074206f76657272756e73000000000000006044820152606490fd5b15611b5b57565b60405162461bcd60e51b815260206004820152601960248201527f636f696e626173653a206e6f2049474e532073656374696f6e000000000000006044820152606490fd5b60071981019190821161115c57565b9190820391821161115c57565b90929160138110611c505761047d91611c2d611c26611c1f611c3594611c19611bf7611bf0611bea8c61116f565b88611678565b5160f81c90565b611c0b83611c04836111ed565b1115611b08565b611c148b6111fb565b611217565b98611217565b8784612425565b86836124d9565b948591612534565b611c4184821415611b54565b611c4b8194611ba0565b611baf565b60405162461bcd60e51b815260206004820152601b60248201527f636f696e626173653a207061796c6f616420746f6f2073686f727400000000006044820152606490fd5b9190811015610eb55760051b0190565b60405190611cb46040836103cc565b601082526f09acae4d6d8ca84e4c2dcc6d090c2e6d60831b6020830152565b15611cda57565b60405162461bcd60e51b815260206004820152602260248201527f6d65726b6c653a206c65616620696e646578206265796f6e64207468652070616044820152610e8d60f31b6064820152608490fd5b939290915f915b808310611d45575050506104019015611cd3565b90919294611da0600191828816155f14611da957611d9990611d91611d6b888789611c95565b60408051602081019490945290359083015281606081015b03601f1981018352826103cc565b610529611ca5565b9660011c90565b93019190611d31565b611dd690611d91611dbb888789611c95565b60408051913560208301528101929092528160608101611d83565b611d99565b909291925f5b848110611df15750505050505f90565b6001600160fb1b038116810361115c578060051b820180831161115c57611e19859185611fb8565b14611e2657600101611de1565b5050505050600190565b15611e3757565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a2073746f726167652076616c7565206973206e6f74206120737472696044820152616e6760f01b6064820152608490fd5b611eaf9392916040516020810191825260208152611ea66040826103cc565b51902090612865565b9015611f0657611ebe81612dc6565b90815115151580611ee7575b91611ed761047d93611e30565b6060604082015191015191612fc6565b506040820151916060810151830180931161115c578151909214611eca565b505f90565b15611f1257565b60405162461bcd60e51b815260206004820152600d60248201526c1a195859195c8e881cda1bdc9d609a1b6044820152606490fd5b602261047d91611f5b8151600a1115611f0b565b015160c01c613054565b602a61047d91611f5b815160121115611f0b565b602061047d91611f5b815160081115611f0b565b90600881019081811161115c5782611fad60209361047d95511015611f0b565b01015160c01c613054565b90602081019182821161115c57611fd460209382511015611f0b565b01015190565b15611fe157565b60405162461bcd60e51b81526020600482015260136024820152720c4d8c2d6ca64c47440d6caf240d8cadccee8d606b1b6044820152606490fd5b604051610100919061202e83826103cc565b60d5815291601f1901366020840137565b6120548151801515908161223b575b50611fda565b61205c61201c565b91612068610100610403565b676a09e667f3bcc908815267bb67ae8584caa73b6020820152673c6ef372fe94f82b604082015267a54ff53a5f1d36f1606082015267510e527fade682d16080820152679b05688c2b3e6c1f60a0820152671f83d9abfb41bd6b60c0820152675be0cd19137e217960e082015261211d63010100206121016120f186516001600160401b031690565b60081b67ffffffffffffff001690565b83516001600160401b0316181882906001600160401b03169052565b600c60238501535f5b600881106121f45750508051916121518460c45f918260648201528260848201528260a48201520152565b80516020606486019201825e6121688315856130c4565b5f5b83811061217c57505050506024015190565b8061218a6121ab9286611baf565b90608082116121eb575b608082106121c8575b81602082870101855e611217565b906121c26121b883611209565b858414908761313a565b9061216a565b6121e68760c45f918260648201528260848201528260a48201520152565b61219d565b60809150612194565b8060051b8201515f905f905b6008821061222057505060c01b600382901b860160240152600101612126565b909160019060ff838560031b1c169060081b17920190612200565b6040915011155f61204e565b1561224e57565b60405162461bcd60e51b815260206004820152601a60248201527f6d70743a206163636f756e74206973206e6f742061206c6973740000000000006044820152606490fd5b1561229a57565b606460405162461bcd60e51b815260206004820152602060248201527f6d70743a206163636f756e7420686173206e6f7420666f7572206669656c64736044820152fd5b60405160609290921b6bffffffffffffffffffffffff191660208301908152612310949392611ea68160348101611d83565b9190156124185761232082612dc6565b90815161232c90151590565b61233590612247565b604082019182516123469085612ecc565b91604083019485519360600193845161235e91611217565b6123689082612ecc565b94604086019586519060600190815161238091611217565b61238a9084612ecc565b9060408201968751926060019283516123a291611217565b6123ac9086612ecc565b9360408501978851956060019586516123c491611217565b915190606001516123d491611217565b146123de90612293565b6001995190516123ee9186612fc6565b975190516123fc9185612fc6565b9551905161240a9184613150565b935190519061047d92613150565b5f91508190819081908190565b600882019081831161115c57839182106124d357016324a3a72360e11b63ffffffff60e01b601c83015116036124ce578260071981011161115c57601801516124a59060e081901c9061249b9060c81c63ff000000165b62ff0000600884901b161761ff00600884901c16179160181c60ff1690565b1763ffffffff1690565b906124b96124b28361118b565b9184611baf565b106124ca57611c4b61047d92611ba0565b5090565b505090565b50505090565b600882019081831161115c57839182106124d3570163049474e560e41b63ffffffff60e01b601c83015116036124ce578260071981011161115c57601801516124a59060e081901c9061249b9060c81c63ff0000001661247c565b600882019081831161115c57839182106124d357016349474e5360e01b63ffffffff60e01b601c83015116036124ce578260071981011161115c57601801516124a59060e081901c9061249b9060c81c63ff0000001661247c565b1561259657565b60405162461bcd60e51b815260206004820152602260248201527f6d70743a206e6f206e6f64657320666f722061206e6f6e2d656d70747920726f6044820152611bdd60f21b6064820152608490fd5b156125ed57565b60405162461bcd60e51b815260206004820152602360248201527f6d70743a20746865206669727374206e6f6465206973206e6f742074686520726044820152621bdbdd60ea1b6064820152608490fd5b1561264557565b60405162461bcd60e51b815260206004820152601760248201527f6d70743a206e6f6465206973206e6f742061206c6973740000000000000000006044820152606490fd5b6040519061022061269b81846103cc565b368337565b156126a757565b60405162461bcd60e51b81526020600482015260136024820152726d70743a20746f6f206d616e79206974656d7360681b6044820152606490fd5b5f19811461115c5760010190565b906011811015610eb55760051b0190565b60405190608082018281106001600160401b038211176103ed576040525f6060838281528260208201528260408201520152565b1561273c57565b60405162461bcd60e51b815260206004820152600d60248201526c0dae0e87440c4c2c840e0c2e8d609b1b6044820152606490fd5b1561277857565b60405162461bcd60e51b81526020600482015260126024820152716d70743a20626164207265666572656e636560701b6044820152606490fd5b156127b957565b60405162461bcd60e51b815260206004820152602160248201527f6d70743a2061207265666572656e636564206e6f6465206973206d697373696e6044820152606760f81b6064820152608490fd5b1561280f57565b60405162461bcd60e51b815260206004820152602860248201527f6d70743a206e6f646520646f6573206e6f74206861736820746f20697473207260448201526765666572656e636560c01b6064820152608490fd5b939291938215612ccb57612891612883611014858897969597610e7b565b9182516020840120146125e6565b5f918290600190825b605084106128dc5760405162461bcd60e51b815260206004820152601260248201527106d70743a207061746820746f6f20646565760741b6044820152606490fd5b6128e69085612ecc565b946128f96128f48751151590565b61263e565b61290161268a565b965f986040880197606089519101905b61291e8a51835190611217565b811015612979579061296d8c8361295c8e9f9d9e9d61291e968e612947601161294c94106126a0565b612ecc565b92612956816126e2565b9e6126f0565b526060604082015191015190611217565b9a999b9a909150612911565b505096509796909694919461298c612701565b5060118103612aad575060408714612a60576129c86129c16129ce926129bb6129b58b8b613199565b60ff1690565b906126f0565b5183612ecc565b9661114e565b955b8051612a505760608101805115612a3c57602092916129f3846040935114612771565b015101015192612a048183106127b2565b612a2c612a1e611014612a16856126e2565b94848c610eba565b948551602087012014612808565b60015f935b01929695949661289a565b505050505050505090505f9061047d611508565b6020600191959295015193612a31565b93509596505050612a7f9250612a7891506102000190565b5182612ecc565b9060608201805115612aa0576040612a9b9301519051916131c0565b600191565b5050505f9061047d611508565b909690600203612c8657612ac2875183612ecc565b90612ad4612ad08351151590565b1590565b80612c79575b612ae390612735565b6040820190612b126060612b0a612b016117cb6117bd87518a611678565b60041c600f1690565b940151611254565b6001841615801591612b2e91612c705760ff60015b1690611baf565b925f5b848110612b9357505050612b54612b4d600293612b5b93611217565b9960200190565b5184612ecc565b9116156129d05796975094925050506040915003612b87578160606040612a9b940151910151916131c0565b50505f9061047d611508565b5f9c979b96999a92939495989c50835f14612c5857896001612bd86117cb6117bd612bc260ff855b1687611217565b94612bd288516114038860011c90565b90611678565b9116612c505760041c600f165b6040612bf18388611217565b1090811591612c2c575b50612c14576001019b97949392919998959a969b612b31565b50505050505050955050505050505f9061047d611508565b905060ff612c466129b5612c40858a611217565b87613199565b911614155f612bfb565b600f16612be5565b896001612bd86117cb6117bd612bc260ff6002612bbb565b60ff6002612b27565b5060608201511515612ada565b60405162461bcd60e51b815260206004820181905260248201527f6d70743a206e6f6465207769746820616e206f6464206974656d20636f756e746044820152606490fd5b9050612cfc9293507f56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42191501461258f565b5f9061047d611508565b15612d0d57565b60405162461bcd60e51b815260206004820152600a6024820152691c9b1c0e881cda1bdc9d60b21b6044820152606490fd5b60ff60f6199116019060ff821161115c57565b60ff60bf199116019060ff821161115c57565b60ff60b6199116019060ff821161115c57565b60ff607f199116019060ff821161115c57565b15612d9257565b60405162461bcd60e51b815260206004820152600c60248201526b3936381d1037bb32b9393ab760a11b6044820152606490fd5b90610401612dd2612701565b92612ddf81511515612d06565b612def6117cb6117bd5f84611678565b5f602086015260ff81166080811015612e2e5750505f6040850152600160608501525b612e256040850151606086015190611217565b90511015612d8b565b60b8811015612e5c57506129b5612e4491612d78565b6060850152612e525f61114e565b6040850152612e12565b60c0811015612e965750612e756129b5612e5292612d65565b612e8881612e825f61114e565b856131fb565b6060870152611c145f61114e565b60f81115612eb4576129b5612e4491612eaf8760019052565b612d52565b612ec36129b5612e5292612d3f565b60018652612e75565b61040190929192612edb612701565b93612ee882518210612d06565b612ef86117cb6117bd8385611678565b9080602087015260ff8216608081105f14612f29575060408601819052600160608701819052612e25925090611217565b60b8811015612f4c5750612f426129b5612e5293612d78565b606087015261114e565b60c0811015612f865750611c14612f686129b5612e5294612d65565b91612f7c83612f768361114e565b876131fb565b606089015261114e565b60f81115612fa257612f426129b5612e5293612eaf8960019052565b611c14612fb46129b5612e5294612d3f565b6001885291612f7c83612f768361114e565b9092915f93602082116130175791905f925b818410612fe55750505050565b9091929460081b8582019081831161115c5761300c6129b56117cb6117bd60019589611678565b179501929190612fd8565b60405162461bcd60e51b8152602060048201526015602482015274726c703a20696e746567657220746f6f207769646560581b6044820152606490fd5b6130c067ff00000000000000603883901b8116600884811b64ff000000001690601886901b65ff00000000001690602887901b66ff000000000000169063ff0000009088901c16931717171762ff0000601885901c161761ff00602885901c1617921660381c60ff1690565b1790565b6040916130d16080613054565b60c01b60e483015261312e575b60d5602060248301920160095afa156130f357565b60405162461bcd60e51b8152602060048201526013602482015272626c616b6532623a20707265636f6d70696c6560681b6044820152606490fd5b600160f48201536130de565b90916130d16001600160401b0360409416613054565b9160200361316057016020015190565b60405162461bcd60e51b8152602060048201526011602482015270726c703a206e6f7420333220627974657360781b6044820152606490fd5b8160011c906020821015610eb557901a906001166131ba5760041c60ff1690565b600f1690565b92919060206131ce83610411565b916131dc60405193846103cc565b8383526131e884610411565b8284019390601f1901368537950101905e565b9291905f93602083111580613290575b156132595791905f925b8284106132225750505050565b9091929461323260019160081b90565b61324e6129b56117cb6117bd6132488b89611217565b87611678565b179501929190613215565b60405162461bcd60e51b815260206004820152600f60248201526e0e4d8e07440c4c2c840d8cadccee8d608b1b6044820152606490fd5b5082820180831161115c578151101561320b56fea26469706673582212207bb97f0d14e08885c3e281d4516c9d0689c2c0e5152ebbff40e6eba4533cf4fc64736f6c634300081c0033"
|
|
}
|