@keep-network/tbtc-v2 0.1.1-dev.21 → 0.1.1-dev.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/TBTC.json +3 -3
- package/artifacts/TBTCToken.json +3 -3
- package/artifacts/VendingMachine.json +10 -10
- package/artifacts/solcInputs/{af7a1ba64c125a6b01a6d1518b2bcc34.json → e2b5f983e9c69369a4f41eb2f0688e3c.json} +5 -5
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +89 -3
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.json +30 -4
- package/build/contracts/bridge/Bridge.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/bridge/BitcoinTx.sol +107 -2
- package/contracts/bridge/Bridge.sol +24 -103
- package/package.json +2 -1
|
@@ -2,9 +2,95 @@
|
|
|
2
2
|
"_format": "hh-sol-artifact-1",
|
|
3
3
|
"contractName": "BitcoinTx",
|
|
4
4
|
"sourceName": "contracts/bridge/BitcoinTx.sol",
|
|
5
|
-
"abi": [
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"components": [
|
|
10
|
+
{
|
|
11
|
+
"internalType": "bytes4",
|
|
12
|
+
"name": "version",
|
|
13
|
+
"type": "bytes4"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"internalType": "bytes",
|
|
17
|
+
"name": "inputVector",
|
|
18
|
+
"type": "bytes"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"internalType": "bytes",
|
|
22
|
+
"name": "outputVector",
|
|
23
|
+
"type": "bytes"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"internalType": "bytes4",
|
|
27
|
+
"name": "locktime",
|
|
28
|
+
"type": "bytes4"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"internalType": "struct BitcoinTx.Info",
|
|
32
|
+
"name": "txInfo",
|
|
33
|
+
"type": "tuple"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"components": [
|
|
37
|
+
{
|
|
38
|
+
"internalType": "bytes",
|
|
39
|
+
"name": "merkleProof",
|
|
40
|
+
"type": "bytes"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"internalType": "uint256",
|
|
44
|
+
"name": "txIndexInBlock",
|
|
45
|
+
"type": "uint256"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"internalType": "bytes",
|
|
49
|
+
"name": "bitcoinHeaders",
|
|
50
|
+
"type": "bytes"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"internalType": "struct BitcoinTx.Proof",
|
|
54
|
+
"name": "proof",
|
|
55
|
+
"type": "tuple"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"components": [
|
|
59
|
+
{
|
|
60
|
+
"internalType": "uint256",
|
|
61
|
+
"name": "currentEpochDifficulty",
|
|
62
|
+
"type": "uint256"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"internalType": "uint256",
|
|
66
|
+
"name": "previousEpochDifficulty",
|
|
67
|
+
"type": "uint256"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"internalType": "uint256",
|
|
71
|
+
"name": "difficultyFactor",
|
|
72
|
+
"type": "uint256"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"internalType": "struct BitcoinTx.ProofDifficulty",
|
|
76
|
+
"name": "proofDifficulty",
|
|
77
|
+
"type": "tuple"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"name": "validateProof",
|
|
81
|
+
"outputs": [
|
|
82
|
+
{
|
|
83
|
+
"internalType": "bytes32",
|
|
84
|
+
"name": "txHash",
|
|
85
|
+
"type": "bytes32"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"stateMutability": "view",
|
|
89
|
+
"type": "function"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"bytecode": "0x61135661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80639d7ae1341461003a575b600080fd5b61004d610048366004610fcc565b61005f565b60405190815260200160405180910390f35b60006100ab6100716020860186611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061035592505050565b6100fc5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064015b60405180910390fd5b61014661010c6040860186611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061040592505050565b6101925760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016100f3565b6101f56101a26020860186611090565b6101af6020870187611049565b6101bc6040890189611049565b6101cc60808b0160608c01611090565b6040516020016101e1969594939291906110d2565b6040516020818303038152906040526104a8565b905061029061024461020a6040860186611049565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104cf92505050565b61024e8580611049565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508694939250505060208701356104de565b6103025760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016100f3565b61034e6103126040850185611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061051c915050565b9392505050565b60008060006103638461077d565b9092509050801580610376575060001982145b15610385575060009392505050565b6000610392836001611142565b905060005b828110156103f857855182106103b35750600095945050505050565b60006103bf8784610794565b90506000198114156103d8575060009695505050505050565b6103e28184611142565b92505080806103f09061115a565b915050610397565b5093519093149392505050565b60008060006104138461077d565b9092509050801580610426575060001982145b15610435575060009392505050565b6000610442836001611142565b905060005b828110156103f857855182106104635750600095945050505050565b600061046f87846107e8565b9050600019811415610488575060009695505050505050565b6104928184611142565b92505080806104a09061115a565b915050610447565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b600083851480156104ed575081155b80156104f857508251155b1561050557506001610514565b6105118584868561084e565b90505b949350505050565b60008061053061052b856108f6565b61098b565b9050823581141561054457823591506105ca565b826020013581141561055c57826020013591506105ca565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016100f3565b60006105d5856109b3565b905060001981141561064f5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016100f3565b6001198114156106a15760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016100f3565b6002198114156106f35760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016100f3565b610701604085013584611175565b8110156107765760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016100f3565b5050505050565b60008061078b836000610bba565b91509150915091565b60008060006107a38585610d5e565b90925090506000198214156107be57600019925050506104d8565b806107ca836025611142565b6107d49190611142565b6107df906004611142565b95945050505050565b60006107f5826009611142565b8351101561080657506000196104d8565b60008061081d85610818866008611142565b610bba565b909250905060001982141561083857600019925050506104d8565b80610844836009611142565b6107df9190611142565b60006020845161085e91906111aa565b1561086b57506000610514565b835161087957506000610514565b818560005b86518110156108e9576108926002846111aa565b600114156108b7576108b06108aa8883016020015190565b83610da0565b91506108d0565b6108cd826108c88984016020015190565b610da0565b91505b60019290921c916108e2602082611142565b905061087e565b5090931495945050505050565b600080610904836048610dac565b60e81c9050600083604b8151811061091e5761091e6111be565b016020015160f81c9050600061095283600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006109666003846111d4565b60ff169050610977816101006112db565b6109819083611175565b9695505050505050565b60006104d87bffff000000000000000000000000000000000000000000000000000083610dbb565b6000605082516109c391906111aa565b156109d15750600019919050565b506040805160808101909152605081526000908190815b8451811015610bb2576109fc858383610dc7565b8015610a1c57610a0c8284610e66565b610a1c5750600119949350505050565b6000610a27836108f6565b9050610a32836104a8565b935080610b768560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115610b89575060021995945050505050565b610b9c610b958261098b565b8690610e8f565b9450610bab9050605082611142565b90506109e8565b505050919050565b6000806000610bc98585610eed565b905060ff8116610bfb576000858581518110610be757610be76111be565b016020015190935060f81c9150610d579050565b83610c078260016112e7565b60ff16610c149190611142565b85511015610c2b5760001960009250925050610d57565b60008160ff1660021415610c7057610c65610c51610c4a876001611142565b8890610dac565b62ffff0060e882901c1660f89190911c1790565b61ffff169050610d4d565b8160ff1660041415610cc057610cb3610c8d610c4a876001611142565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050610d4d565b8160ff1660081415610d4d57610d40610cdd610c4a876001611142565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600080610d6c836025611142565b84511015610d81575060001990506000610d57565b600080610d9386610818876024611142565b9097909650945050505050565b600061034e8383610f79565b600061034e8383016020015190565b600061034e828461130c565b81516000610dd58284611142565b90508281118015610de7575080855110155b610e335760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016100f3565b826020860101602085018382015b80831015610e5c578251825260209283019290910190610e41565b5050505050505050565b600080610e7284610fa7565b9050828114610e855760009150506104d8565b5060019392505050565b6000610e9b8284611142565b9050828110156104d85760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016100f3565b6000828281518110610f0157610f016111be565b60209101015160f81c60ff1415610f1a575060086104d8565b828281518110610f2c57610f2c6111be565b60209101015160f81c60fe1415610f45575060046104d8565b828281518110610f5757610f576111be565b60209101015160f81c60fd1415610f70575060026104d8565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906104d8565b600060608284031215610fc657600080fd5b50919050565b600080600060a08486031215610fe157600080fd5b833567ffffffffffffffff80821115610ff957600080fd5b908501906080828803121561100d57600080fd5b9093506020850135908082111561102357600080fd5b5061103086828701610fb4565b9250506110408560408601610fb4565b90509250925092565b6000808335601e1984360301811261106057600080fd5b83018035915067ffffffffffffffff82111561107b57600080fd5b602001915036819003821315610d5757600080fd5b6000602082840312156110a257600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461034e57600080fd5b60007fffffffff000000000000000000000000000000000000000000000000000000008089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156111555761115561112c565b500190565b600060001982141561116e5761116e61112c565b5060010190565b600081600019048311821515161561118f5761118f61112c565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826111b9576111b9611194565b500690565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff8416808210156111ee576111ee61112c565b90039392505050565b600181815b808511156112325781600019048211156112185761121861112c565b8085161561122557918102915b93841c93908002906111fc565b509250929050565b600082611249575060016104d8565b81611256575060006104d8565b816001811461126c576002811461127657611292565b60019150506104d8565b60ff8411156112875761128761112c565b50506001821b6104d8565b5060208310610133831016604e8410600b84101617156112b5575081810a6104d8565b6112bf83836111f7565b80600019048211156112d3576112d361112c565b029392505050565b600061034e838361123a565b600060ff821660ff84168060ff038211156113045761130461112c565b019392505050565b60008261131b5761131b611194565b50049056fea26469706673582212205f5dcf9ff4cd23eea8e461d2aff41e0ee2c6510e847321d31a9d2e4d513cb99f64736f6c63430008090033",
|
|
93
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80639d7ae1341461003a575b600080fd5b61004d610048366004610fcc565b61005f565b60405190815260200160405180910390f35b60006100ab6100716020860186611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061035592505050565b6100fc5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064015b60405180910390fd5b61014661010c6040860186611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061040592505050565b6101925760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016100f3565b6101f56101a26020860186611090565b6101af6020870187611049565b6101bc6040890189611049565b6101cc60808b0160608c01611090565b6040516020016101e1969594939291906110d2565b6040516020818303038152906040526104a8565b905061029061024461020a6040860186611049565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104cf92505050565b61024e8580611049565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508694939250505060208701356104de565b6103025760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016100f3565b61034e6103126040850185611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061051c915050565b9392505050565b60008060006103638461077d565b9092509050801580610376575060001982145b15610385575060009392505050565b6000610392836001611142565b905060005b828110156103f857855182106103b35750600095945050505050565b60006103bf8784610794565b90506000198114156103d8575060009695505050505050565b6103e28184611142565b92505080806103f09061115a565b915050610397565b5093519093149392505050565b60008060006104138461077d565b9092509050801580610426575060001982145b15610435575060009392505050565b6000610442836001611142565b905060005b828110156103f857855182106104635750600095945050505050565b600061046f87846107e8565b9050600019811415610488575060009695505050505050565b6104928184611142565b92505080806104a09061115a565b915050610447565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b600083851480156104ed575081155b80156104f857508251155b1561050557506001610514565b6105118584868561084e565b90505b949350505050565b60008061053061052b856108f6565b61098b565b9050823581141561054457823591506105ca565b826020013581141561055c57826020013591506105ca565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016100f3565b60006105d5856109b3565b905060001981141561064f5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016100f3565b6001198114156106a15760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016100f3565b6002198114156106f35760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016100f3565b610701604085013584611175565b8110156107765760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016100f3565b5050505050565b60008061078b836000610bba565b91509150915091565b60008060006107a38585610d5e565b90925090506000198214156107be57600019925050506104d8565b806107ca836025611142565b6107d49190611142565b6107df906004611142565b95945050505050565b60006107f5826009611142565b8351101561080657506000196104d8565b60008061081d85610818866008611142565b610bba565b909250905060001982141561083857600019925050506104d8565b80610844836009611142565b6107df9190611142565b60006020845161085e91906111aa565b1561086b57506000610514565b835161087957506000610514565b818560005b86518110156108e9576108926002846111aa565b600114156108b7576108b06108aa8883016020015190565b83610da0565b91506108d0565b6108cd826108c88984016020015190565b610da0565b91505b60019290921c916108e2602082611142565b905061087e565b5090931495945050505050565b600080610904836048610dac565b60e81c9050600083604b8151811061091e5761091e6111be565b016020015160f81c9050600061095283600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006109666003846111d4565b60ff169050610977816101006112db565b6109819083611175565b9695505050505050565b60006104d87bffff000000000000000000000000000000000000000000000000000083610dbb565b6000605082516109c391906111aa565b156109d15750600019919050565b506040805160808101909152605081526000908190815b8451811015610bb2576109fc858383610dc7565b8015610a1c57610a0c8284610e66565b610a1c5750600119949350505050565b6000610a27836108f6565b9050610a32836104a8565b935080610b768560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115610b89575060021995945050505050565b610b9c610b958261098b565b8690610e8f565b9450610bab9050605082611142565b90506109e8565b505050919050565b6000806000610bc98585610eed565b905060ff8116610bfb576000858581518110610be757610be76111be565b016020015190935060f81c9150610d579050565b83610c078260016112e7565b60ff16610c149190611142565b85511015610c2b5760001960009250925050610d57565b60008160ff1660021415610c7057610c65610c51610c4a876001611142565b8890610dac565b62ffff0060e882901c1660f89190911c1790565b61ffff169050610d4d565b8160ff1660041415610cc057610cb3610c8d610c4a876001611142565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050610d4d565b8160ff1660081415610d4d57610d40610cdd610c4a876001611142565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600080610d6c836025611142565b84511015610d81575060001990506000610d57565b600080610d9386610818876024611142565b9097909650945050505050565b600061034e8383610f79565b600061034e8383016020015190565b600061034e828461130c565b81516000610dd58284611142565b90508281118015610de7575080855110155b610e335760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016100f3565b826020860101602085018382015b80831015610e5c578251825260209283019290910190610e41565b5050505050505050565b600080610e7284610fa7565b9050828114610e855760009150506104d8565b5060019392505050565b6000610e9b8284611142565b9050828110156104d85760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016100f3565b6000828281518110610f0157610f016111be565b60209101015160f81c60ff1415610f1a575060086104d8565b828281518110610f2c57610f2c6111be565b60209101015160f81c60fe1415610f45575060046104d8565b828281518110610f5757610f576111be565b60209101015160f81c60fd1415610f70575060026104d8565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906104d8565b600060608284031215610fc657600080fd5b50919050565b600080600060a08486031215610fe157600080fd5b833567ffffffffffffffff80821115610ff957600080fd5b908501906080828803121561100d57600080fd5b9093506020850135908082111561102357600080fd5b5061103086828701610fb4565b9250506110408560408601610fb4565b90509250925092565b6000808335601e1984360301811261106057600080fd5b83018035915067ffffffffffffffff82111561107b57600080fd5b602001915036819003821315610d5757600080fd5b6000602082840312156110a257600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461034e57600080fd5b60007fffffffff000000000000000000000000000000000000000000000000000000008089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156111555761115561112c565b500190565b600060001982141561116e5761116e61112c565b5060010190565b600081600019048311821515161561118f5761118f61112c565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826111b9576111b9611194565b500690565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff8416808210156111ee576111ee61112c565b90039392505050565b600181815b808511156112325781600019048211156112185761121861112c565b8085161561122557918102915b93841c93908002906111fc565b509250929050565b600082611249575060016104d8565b81611256575060006104d8565b816001811461126c576002811461127657611292565b60019150506104d8565b60ff8411156112875761128761112c565b50506001821b6104d8565b5060208310610133831016604e8410600b84101617156112b5575081810a6104d8565b6112bf83836111f7565b80600019048211156112d3576112d361112c565b029392505050565b600061034e838361123a565b600060ff821660ff84168060ff038211156113045761130461112c565b019392505050565b60008261131b5761131b611194565b50049056fea26469706673582212205f5dcf9ff4cd23eea8e461d2aff41e0ee2c6510e847321d31a9d2e4d513cb99f64736f6c63430008090033",
|
|
8
94
|
"linkReferences": {},
|
|
9
95
|
"deployedLinkReferences": {}
|
|
10
96
|
}
|
|
@@ -860,8 +860,34 @@
|
|
|
860
860
|
"type": "function"
|
|
861
861
|
}
|
|
862
862
|
],
|
|
863
|
-
"bytecode": "0x6101006040523480156200001257600080fd5b50604051620056df380380620056df83398101604081905262000035916200021d565b6200004033620001b0565b6001600160a01b0384166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660a0528316620000fa5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160a01b0380841660c0528216620001585760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b6001600160a01b039190911660e052608052505060008054600160a01b600160e01b031916607d60a41b1790557903e800000000000007d000000000000f424000000000000003e86001556202a3006002556200026f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021857600080fd5b919050565b600080600080608085870312156200023457600080fd5b6200023f8562000200565b93506200024f6020860162000200565b92506200025f6040860162000200565b6060959095015193969295505050565b60805160a05160c05160e0516153f0620002ef6000396000818161035701528181610a7601526116620152600081816104d801528181613b6f0152613c0401526000818161039e015281816109e301528181610aa5015281816115c90152818161169a0152611e370152600081816102f50152613e6601526153f06000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80638da5cb5b116100e3578063cb7f3a091161008c578063e65e19d511610066578063e65e19d51461056d578063e95eb7a8146105ae578063f2fde38b146105c857600080fd5b8063cb7f3a0914610514578063d6eccdf014610527578063e53c0b551461053a57600080fd5b8063b34b3216116100bd578063b34b3216146104c0578063b59589d1146104d3578063bdf9fca9146104fa57600080fd5b80638da5cb5b146103e0578063a588f059146103f1578063b02c43d01461040b57600080fd5b80635c0b481211610145578063715018a61161011f578063715018a61461039157806376cdb03b1461039957806383a43428146103c057600080fd5b80635c0b48121461032c57806360d712fc1461033f57806361d027b31461035257600080fd5b80631fff4e70116101765780631fff4e70146102d95780632bb818c2146102f057806359a9d90a1461031757600080fd5b806303d952f71461019d578063079bf52c146102485780630b6ba19d1461027a575b600080fd5b6101fc6101ab366004614815565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b60005461026290600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161023f565b6101fc610288366004614815565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e260025481565b60405190815260200161023f565b6102e27f000000000000000000000000000000000000000000000000000000000000000081565b61032a610325366004614858565b6105db565b005b61032a61033a3660046148c3565b610b11565b61032a61034d366004614939565b6111ad565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b61032a611266565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6102e26103ce36600461498d565b60056020526000908152604090205481565b6000546001600160a01b0316610379565b60015461026290600160c01b90046001600160401b031681565b610470610419366004614815565b600460205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161023f565b61032a6104ce3660046149a8565b6112cc565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60015461026290600160401b90046001600160401b031681565b600154610262906001600160401b031681565b61032a610535366004614a44565b611701565b61055d610548366004614ae9565b60036020526000908152604090205460ff1681565b604051901515815260200161023f565b6105a061057b36600461498d565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161023f929190614b1a565b60015461026290600160801b90046001600160401b031681565b61032a6105d6366004614ae9565b611ea7565b60006105e78484611f89565b90506000806106366105fc6040880188614b54565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061210392505050565b60408051606081018252600080825260208083018290528284018290526001600160601b031986168252600590529190912054929450909250908015610750578086356106896040890160208a01614bae565b61069960608a0160408b01614bc9565b6040516020016106d69392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461073e5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b61074d36879003870187614bfa565b91505b600061079e61076260208b018b614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612236915050565b9050600080806107c18460000151886001600160401b03168660400151516127b0565b60015491935091506001600160401b03166107dc8284614c82565b111561082a5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f206869676800000000006044820152606401610735565b60005b846040015151811015610918576000600186604001515161084e9190614c9a565b821461085a5783610864565b6108648385614c82565b9050808660600151838151811061087d5761087d614cb1565b60200260200101518760400151848151811061089b5761089b614cb1565b60200260200101516108ad9190614c9a565b6108b79190614c9a565b866040015183815181106108cd576108cd614cb1565b602002602001018181525050856060015182815181106108ef576108ef614cb1565b6020026020010151856109029190614c82565b945050808061091090614cc7565b91505061082d565b5060408051602081018b90526000918101919091526001600160c01b031960c089901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198c1660008181526005845284902091909155835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610a1692600401614ce2565b600060405180830381600087803b158015610a3057600080fd5b505af1158015610a44573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610aeb57600080fd5b505af1158015610aff573d6000803e3d6000fd5b50505050505050505050505050505050565b6000610b2360e0830160c08401614ae9565b6001600160a01b03161480610b65575060036000610b4760e0840160c08501614ae9565b6001600160a01b0316815260208101919091526040016000205460ff165b610bb15760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f7420747275737465640000000000000000000000006044820152606401610735565b6000610bc36040830160208401614ae9565b610bd36060840160408501614d66565b610be3608085016060860161498d565b610bf360a086016080870161498d565b610c0360c0870160a08801614d90565b604051602001610c17959493929190614dba565b60408051601f1981840301815291905290506000610c8b610c3b6020850185614bae565b63ffffffff16610c4e6040870187614b54565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506127ec9050565b90506000610c98826129b7565b9050805160141415610d1e57610cad83612c5d565b6001600160601b031916610cc2826000612c84565b6001600160601b03191614610d195760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d62797465207363726970742068617368000000000000006044820152606401610735565b610e16565b805160201415610dce57600283604051610d38919061506a565b602060405180830381855afa158015610d55573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d789190615076565b610d8182612c9a565b14610d195760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d62797465207363726970742068617368000000000000006044820152606401610735565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e67746800000000000000006044820152606401610735565b6000610e7b610e286020880188614d90565b610e356020890189614b54565b610e4260408b018b614b54565b610e5260808d0160608e01614d90565b604051602001610e679695949392919061508f565b604051602081830303815290604052612cb6565b9050600060048183610e9060208a018a614bae565b604051602001610eb792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610f3b5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c656400000000000000006044820152606401610735565b6000610f4685612cdd565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610f8f6040880160208901614ae9565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610fde60e0880160c08901614ae9565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055600054600160a01b90046001600160401b031661102b576000611048565b60005461104890600160a01b90046001600160401b0316826150e7565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef05836110b960208a018a614bae565b6110c960408b0160208c01614ae9565b846110da60608d0160408e01614d66565b6110ea60808e0160608f0161498d565b8d60800160208101906110fd919061498d565b8e60a00160208101906111109190614d90565b8f60c00160208101906111239190614ae9565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b031633146112075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146112c05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6112ca6000612d53565b565b60006112d88585611f89565b90506113286112ea6020870187614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612db09050565b6001600160601b0319821660009081526008602052604090205460ff16600181600481111561135957611359614b04565b14806113765750600281600481111561137457611374614b04565b145b6113e85760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e674675647320737461746500000000000000000000000000000000000000006064820152608401610735565b60006114366113fa6040890189614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612fb5915050565b60608101519091506001600160401b0316156114c95782816040015182606001516040516020016114949392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b03198716600090815260059093529120556114e4565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061151d90849061010090046001600160401b031661510d565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516115879291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561161557600080fd5b505af1158015611629573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b1580156116e057600080fd5b505af11580156116f4573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561173157611731614b04565b1461177e5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e2041637469766520737461746500006044820152606401610735565b6001600160601b031985166000908152600560205260409020548061180b5760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401610735565b80853561181e6040880160208901614bae565b61182e6060890160408a01614bc9565b60405160200161186b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146118ce5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610735565b6000611900600060c01b86866040516020016118ec93929190615135565b6040516020818303038152906040526129b7565b905060008151116119795760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e6461726420747970650000000000000000000000000000000000006064820152608401610735565b8080519060200120876040516020016119a291906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611a2c5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b480000000000000000006064820152608401610735565b6001546001600160401b03600160401b90910481169084161015611a925760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c00000000006044820152606401610735565b6000878686604051602001611aa993929190615159565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615611b7a5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a401610735565b600154600090600160801b90046001600160401b0316611b9b576000611bb8565b600154611bb890600160801b90046001600160401b0316866150e7565b600154909150600160c01b90046001600160401b0316611bd8828761510d565b6001600160601b03198b1660009081526008602052604090208054600190611c0f90849061010090046001600160401b031661517d565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600860205260409081902054919091049091169150611c659060608c01908c01614bc9565b6001600160401b03161015611cbc5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e6473000000000000006044820152606401610735565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611dec918d918c918c91908c90899089906151a8565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611e8357600080fd5b505af1158015611e97573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611f015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6001600160a01b038116611f7d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610735565b611f8681612d53565b50565b6000611fd5611f9b6020850185614b54565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506135ca92505050565b6120215760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f76696465640000006044820152606401610735565b61206b6120316040850185614b54565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367a92505050565b6120b75760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f766964656400006044820152606401610735565b6120f16120c76020850185614d90565b6120d46020860186614b54565b6120e16040880188614b54565b610e5260808a0160608b01614d90565b90506120fd818361371d565b92915050565b600080600061211184613876565b9150508060011461218a5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f75747075740000000000000000000000000000000000000000006064820152608401610735565b600061219685826127ec565b90506121a181612cdd565b925060006121ae826129b7565b905080516014146122275760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f76652032302062797465730000000000000000000000000000000000000000006064820152608401610735565b60208101519450505050915091565b6122616040518060800160405280600081526020016060815260200160608152602001606081525090565b815115156000808061227287613876565b90925090506000612284836001614c82565b9050841561229c57612297600183614c9a565b61229e565b815b6001600160401b038111156122b5576122b5614be4565b6040519080825280602002602001820160405280156122de578160200160208202803683370190505b5060208701819052516001600160401b038111156122fe576122fe614be4565b604051908082528060200260200182016040528015612327578160200160208202803683370190505b5060408701526020860151516001600160401b0381111561234a5761234a614be4565b604051908082528060200260200182016040528015612373578160200160208202803683370190505b5060608701526000805b838110156126b45760008060006123948d8761388d565b92509250925060006004600085856040516020016123c992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615612605576001810154600160e01b900463ffffffff16156124645760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c726561647920737765707400000000000000000000006044820152606401610735565b8b60200151518614156124df5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e707574730000000000006064820152608401610735565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b03909216918890811061253857612538614cb1565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b0316918890811061257c5761257c614cb1565b6020026020010181815250508b60400151868151811061259e5761259e614cb1565b60200260200101518c6000018181516125b79190614c82565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106125e8576125e8614cb1565b6020908102919091010152856125fd81614cc7565b965050612691565b8915158b15151415801561261957508c5184145b15612649578c604001516001600160401b03168c60000181815161263d9190614c82565b90525060019950612691565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e707574207479706500000000000000000000000000006044820152606401610735565b61269b8288614c82565b96505050505080806126ac90614cc7565b91505061237d565b506000811161272b5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f736974000000000000000000000000006064820152608401610735565b841515861515146127a45760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e707574730000000000006064820152608401610735565b50505050505092915050565b600080806127be8587614c9a565b90506127ca848261521f565b9150836127d78383614c9a565b6127e19190615233565b925050935093915050565b60606000806127fa85613876565b909250905060001982141561285c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b6064820152608401610735565b8084106128ab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e0000000000000000000000000000006044820152606401610735565b6000806128b9846001614c82565b905060005b86811015612942576128d088836138e5565b92506000198314156129245760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610735565b61292e8383614c82565b91508061293a81614cc7565b9150506128be565b5061294d87826138e5565b91506000198214156129a15760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610735565b6129ac878284613954565b979650505050505050565b60606000826008815181106129ce576129ce614cb1565b0160200151835160f89190911c91506129e8826009615247565b60ff1614612a06575050604080516020810190915260008152919050565b82600981518110612a1957612a19614cb1565b016020015160f81c612abf5760028160ff161015612a47575050604080516020810190915260008152919050565b600083600a81518110612a5c57612a5c614cb1565b016020015160f81c9050612a7160028361526c565b60ff1681141580612a8f575080602014158015612a8f575080601414155b15612aab57505060408051602081019091526000815292915050565b612ab784600b83613954565b949350505050565b6000612acc846008612c84565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612ba95783600b81518110612b2b57612b2b614cb1565b60209101015160f81c6014141580612b805750612b5660028551612b4f9190614c9a565b8590612c84565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612b9c57505060408051602081019091526000815292915050565b612ab784600c6014613954565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612c46578360018551612c029190614c9a565b81518110612c1257612c12614cb1565b60209101015160f81c608714612c3957505060408051602081019091526000815292915050565b612ab784600b6014613954565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612c938383016020015190565b9392505050565b6000815160001415612cae57506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612ce983613a1e565b60c01c90506000612ab78264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612e175760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c65740000006044820152606401610735565b808335612e2a6040860160208701614bae565b612e3a6060870160408801614bc9565b604051602001612e779392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612eda5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610735565b600080612ee686613a2a565b9092509050843582148015612f15575063ffffffff8116612f0d6040870160208801614bae565b63ffffffff16145b612fad5760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a401610735565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612fe385613876565b90925090506000612ff5836001614c82565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156135535760006130b78b876138e5565b905060006130c68c8884613954565b905060006130d382612cdd565b905060006130f160088085516130e99190614c9a565b859190613954565b90508b606001516001600160401b0316600014801561312457508051602082012088148061312457508051602082012087145b801561313957506000826001600160401b0316115b1561315e5763ffffffff851660408d01526001600160401b03821660608d0152613530565b60008d8260405160200161317392919061528f565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff161561337d576000818152600660205260408120600181015481549192916131e5916001600160401b0390811691600160a01b90041661510d565b60018301549091506001600160401b038087169161320c91600160401b909104168361510d565b6001600160401b0316111580156132355750806001600160401b0316856001600160401b031611155b6132cd5760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a401610735565b808f6000018181516132df919061517d565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151613323919061517d565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff191690558861337381614cc7565b995050505061352e565b60008181526007602052604090206001810154600160801b900463ffffffff1661340e5760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e000000000000000000000000000000000000000000000000000000006064820152608401610735565b60018101548154600091613436916001600160401b0391821691600160a01b9091041661510d565b60018301549091506001600160401b038087169161345d91600160401b909104168361510d565b6001600160401b0316111580156134865750806001600160401b0316856001600160401b031611155b61351e5760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a401610735565b8861352881614cc7565b99505050505b505b61353a848a614c82565b985050505050808061354b90614cc7565b9150506130a3565b50600081116127a45760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e00000000006064820152608401610735565b60008060006135d884613876565b90925090508015806135eb575060001982145b156135fa575060009392505050565b6000613607836001614c82565b905060005b8281101561366d57855182106136285750600095945050505050565b60006136348784613adf565b905060001981141561364d575060009695505050505050565b6136578184614c82565b925050808061366590614cc7565b91505061360c565b5093519093149392505050565b600080600061368884613876565b909250905080158061369b575060001982145b156136aa575060009392505050565b60006136b7836001614c82565b905060005b8281101561366d57855182106136d85750600095945050505050565b60006136e487846138e5565b90506000198114156136fd575060009695505050505050565b6137078184614c82565b925050808061371590614cc7565b9150506136bc565b6137b661376a6137306040840184614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2a92505050565b6137748380614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613b37565b6138285760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e642074782068617368000000006064820152608401610735565b6138726138386040830183614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b6a92505050565b5050565b600080613884836000613f00565b91509150915091565b6000808061389b8585612c84565b92506138d06138aa868661407c565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506138dc8585613adf565b90509250925092565b60006138f2826009614c82565b8351101561390357506000196120fd565b60008061391a85613915866008614c82565b613f00565b909250905060001982141561393557600019925050506120fd565b80613941836009614c82565b61394b9190614c82565b95945050505050565b6060816139705750604080516020810190915260008152612c93565b600061397c8385614c82565b9050838111801561398e575080855110155b6139da5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610735565b604051915082604083010160405282825283850182038460208701018481015b80821015613a13578151838301526020820191506139fa565b505050509392505050565b60006120fd8282612c84565b6000806000613a3884613876565b91505080600114613ab15760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e70757400000000000000000000000000000000006064820152608401610735565b6000613abd8582614093565b9050613ac881614248565b9350613ad66138aa82614255565b92505050915091565b6000806000613aee8585614262565b9092509050600019821415613b0957600019925050506120fd565b80613b15836025614c82565b613b1f9190614c82565b61394b906004614c82565b60448101516000906120fd565b60008385148015613b46575081155b8015613b5157508251155b15613b5e57506001612ab7565b61394b858486856142a4565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b158015613bc657600080fd5b505afa158015613bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bfe9190615076565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015613c5b57600080fd5b505afa158015613c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c939190615076565b90506000613ca8613ca38661434c565b6143e1565b905082811415613cba57829350613d38565b81811415613cca57819350613d38565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c74790000000000000000000000000000000000000000000000000000006064820152608401610735565b6000613d4386614409565b9050600019811415613dbd5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e00000000000000000000000000000000000000000000000000000000006064820152608401610735565b600119811415613e0f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e00000000000000000000006044820152606401610735565b600219811415613e615760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e2061206865616465720000006044820152606401610735565b613e8b7f0000000000000000000000000000000000000000000000000000000000000000866152ab565b811015612fad5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e000000000000000000000000006064820152608401610735565b6000806000613f0f8585614610565b905060ff8116613f41576000858581518110613f2d57613f2d614cb1565b016020015190935060f81c91506140759050565b83613f4d826001615247565b60ff16613f5a9190614c82565b85511015613f715760001960009250925050614075565b60008160ff1660021415613fb657613fab613f97613f90876001614c82565b8890612c84565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061406b565b8160ff1660041415613fe057613fd36138aa613f90876001614c82565b63ffffffff16905061406b565b8160ff166008141561406b5761405f613ffd613f90876001614c82565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612c9361408c836020614c82565b8490612c84565b60606000806140a185613876565b90925090506000198214156141035760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b6064820152608401610735565b8084106141525760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e000000000000000000000000000000006044820152606401610735565b600080614160846001614c82565b905060005b868110156141e9576141778883613adf565b92506000198314156141cb5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610735565b6141d58383614c82565b9150806141e181614cc7565b915050614165565b506141f48782613adf565b91506000198214156129a15760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610735565b60208101516000906120fd565b60006120fd826020612c84565b600080614270836025614c82565b84511015614285575060001990506000614075565b60008061429786613915876024614c82565b9097909650945050505050565b6000602084516142b4919061521f565b156142c157506000612ab7565b83516142cf57506000612ab7565b818560005b865181101561433f576142e860028461521f565b6001141561430d576143066143008883016020015190565b8361469c565b9150614326565b6143238261431e8984016020015190565b61469c565b91505b60019290921c91614338602082614c82565b90506142d4565b5090931495945050505050565b60008061435a836048612c84565b60e81c9050600083604b8151811061437457614374614cb1565b016020015160f81c905060006143a883600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006143bc60038461526c565b60ff1690506143cd816101006153ae565b6143d790836152ab565b9695505050505050565b60006120fd7bffff0000000000000000000000000000000000000000000000000000836146a8565b600060508251614419919061521f565b156144275750600019919050565b506040805160808101909152605081526000908190815b8451811015614608576144528583836146b4565b8015614472576144628284614753565b6144725750600119949350505050565b600061447d8361434c565b905061448883612cb6565b9350806145cc8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b11156145df575060021995945050505050565b6145f26145eb826143e1565b869061477c565b94506146019050605082614c82565b905061443e565b505050919050565b600082828151811061462457614624614cb1565b60209101015160f81c60ff141561463d575060086120fd565b82828151811061464f5761464f614cb1565b60209101015160f81c60fe1415614668575060046120fd565b82828151811061467a5761467a614cb1565b60209101015160f81c60fd1415614693575060026120fd565b50600092915050565b6000612c9383836147da565b6000612c938284615233565b815160006146c28284614c82565b905082811180156146d4575080855110155b6147205760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610735565b826020860101602085018382015b8083101561474957825182526020928301929091019061472e565b5050505050505050565b60008061475f84614808565b90508281146147725760009150506120fd565b5060019392505050565b60006147888284614c82565b9050828110156120fd5760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e000000000000006044820152606401610735565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906120fd565b60006020828403121561482757600080fd5b5035919050565b60006080828403121561484057600080fd5b50919050565b60006060828403121561484057600080fd5b600080600060a0848603121561486d57600080fd5b83356001600160401b038082111561488457600080fd5b6148908783880161482e565b945060208601359150808211156148a657600080fd5b506148b386828701614846565b9250506138dc8560408601614846565b6000808284036101008112156148d857600080fd5b83356001600160401b038111156148ee57600080fd5b6148fa8682870161482e565b93505060e0601f198201121561490f57600080fd5b506020830190509250929050565b80356001600160a01b038116811461493457600080fd5b919050565b6000806040838503121561494c57600080fd5b6149558361491d565b91506020830135801515811461496a57600080fd5b809150509250929050565b80356001600160601b03198116811461493457600080fd5b60006020828403121561499f57600080fd5b612c9382614975565b60008060008060c085870312156149be57600080fd5b84356001600160401b03808211156149d557600080fd5b6149e18883890161482e565b955060208701359150808211156149f757600080fd5b50614a0487828801614846565b935050614a148660408701614846565b9150614a2260a08601614975565b905092959194509250565b80356001600160401b038116811461493457600080fd5b600080600080600060c08688031215614a5c57600080fd5b614a6586614975565b9450614a748760208801614846565b935060808601356001600160401b0380821115614a9057600080fd5b818801915088601f830112614aa457600080fd5b813581811115614ab357600080fd5b896020828501011115614ac557600080fd5b602083019550809450505050614add60a08701614a2d565b90509295509295909350565b600060208284031215614afb57600080fd5b612c938261491d565b634e487b7160e01b600052602160045260246000fd5b6040810160058410614b3c57634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e19843603018112614b6b57600080fd5b8301803591506001600160401b03821115614b8557600080fd5b60200191503681900382131561407557600080fd5b803563ffffffff8116811461493457600080fd5b600060208284031215614bc057600080fd5b612c9382614b9a565b600060208284031215614bdb57600080fd5b612c9382614a2d565b634e487b7160e01b600052604160045260246000fd5b600060608284031215614c0c57600080fd5b604051606081018181106001600160401b0382111715614c3c57634e487b7160e01b600052604160045260246000fd5b60405282358152614c4f60208401614b9a565b6020820152614c6060408401614a2d565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614c9557614c95614c6c565b500190565b600082821015614cac57614cac614c6c565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415614cdb57614cdb614c6c565b5060010190565b604080825283519082018190526000906020906060840190828701845b82811015614d245781516001600160a01b031684529284019290840190600101614cff565b5050508381038285015284518082528583019183019060005b81811015614d5957835183529284019291840191600101614d3d565b5090979650505050505050565b600060208284031215614d7857600080fd5b81356001600160c01b031981168114612c9357600080fd5b600060208284031215614da257600080fd5b81356001600160e01b031981168114612c9357600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614e8e614e81614e58602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614f4d614e81614e58614e2f614f24601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050615023614ffa60068301614efb565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b818110156150505760208185018101518683015201615036565b8181111561505f576000828601525b509290920192915050565b6000612c93828461502f565b60006020828403121561508857600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680615101576151016150d1565b92169190910492915050565b60006001600160401b038381169083168181101561512d5761512d614c6c565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b0380831681851680830382111561519f5761519f614c6c565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b60008261522e5761522e6150d1565b500690565b600082615242576152426150d1565b500490565b600060ff821660ff84168060ff0382111561526457615264614c6c565b019392505050565b600060ff821660ff84168082101561528657615286614c6c565b90039392505050565b6001600160601b0319831681526000612ab7601483018461502f565b60008160001904831182151516156152c5576152c5614c6c565b500290565b600181815b808511156153055781600019048211156152eb576152eb614c6c565b808516156152f857918102915b93841c93908002906152cf565b509250929050565b60008261531c575060016120fd565b81615329575060006120fd565b816001811461533f576002811461534957615365565b60019150506120fd565b60ff84111561535a5761535a614c6c565b50506001821b6120fd565b5060208310610133831016604e8410600b8410161715615388575081810a6120fd565b61539283836152ca565b80600019048211156153a6576153a6614c6c565b029392505050565b6000612c93838361530d56fea2646970667358221220dec45ad64bce02ab846f6d5cc9802355d120fef2c39868d31f88663c583c446e64736f6c63430008090033",
|
|
864
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101985760003560e01c80638da5cb5b116100e3578063cb7f3a091161008c578063e65e19d511610066578063e65e19d51461056d578063e95eb7a8146105ae578063f2fde38b146105c857600080fd5b8063cb7f3a0914610514578063d6eccdf014610527578063e53c0b551461053a57600080fd5b8063b34b3216116100bd578063b34b3216146104c0578063b59589d1146104d3578063bdf9fca9146104fa57600080fd5b80638da5cb5b146103e0578063a588f059146103f1578063b02c43d01461040b57600080fd5b80635c0b481211610145578063715018a61161011f578063715018a61461039157806376cdb03b1461039957806383a43428146103c057600080fd5b80635c0b48121461032c57806360d712fc1461033f57806361d027b31461035257600080fd5b80631fff4e70116101765780631fff4e70146102d95780632bb818c2146102f057806359a9d90a1461031757600080fd5b806303d952f71461019d578063079bf52c146102485780630b6ba19d1461027a575b600080fd5b6101fc6101ab366004614815565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b60005461026290600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161023f565b6101fc610288366004614815565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e260025481565b60405190815260200161023f565b6102e27f000000000000000000000000000000000000000000000000000000000000000081565b61032a610325366004614858565b6105db565b005b61032a61033a3660046148c3565b610b11565b61032a61034d366004614939565b6111ad565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b61032a611266565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6102e26103ce36600461498d565b60056020526000908152604090205481565b6000546001600160a01b0316610379565b60015461026290600160c01b90046001600160401b031681565b610470610419366004614815565b600460205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161023f565b61032a6104ce3660046149a8565b6112cc565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60015461026290600160401b90046001600160401b031681565b600154610262906001600160401b031681565b61032a610535366004614a44565b611701565b61055d610548366004614ae9565b60036020526000908152604090205460ff1681565b604051901515815260200161023f565b6105a061057b36600461498d565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161023f929190614b1a565b60015461026290600160801b90046001600160401b031681565b61032a6105d6366004614ae9565b611ea7565b60006105e78484611f89565b90506000806106366105fc6040880188614b54565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061210392505050565b60408051606081018252600080825260208083018290528284018290526001600160601b031986168252600590529190912054929450909250908015610750578086356106896040890160208a01614bae565b61069960608a0160408b01614bc9565b6040516020016106d69392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461073e5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b61074d36879003870187614bfa565b91505b600061079e61076260208b018b614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612236915050565b9050600080806107c18460000151886001600160401b03168660400151516127b0565b60015491935091506001600160401b03166107dc8284614c82565b111561082a5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f206869676800000000006044820152606401610735565b60005b846040015151811015610918576000600186604001515161084e9190614c9a565b821461085a5783610864565b6108648385614c82565b9050808660600151838151811061087d5761087d614cb1565b60200260200101518760400151848151811061089b5761089b614cb1565b60200260200101516108ad9190614c9a565b6108b79190614c9a565b866040015183815181106108cd576108cd614cb1565b602002602001018181525050856060015182815181106108ef576108ef614cb1565b6020026020010151856109029190614c82565b945050808061091090614cc7565b91505061082d565b5060408051602081018b90526000918101919091526001600160c01b031960c089901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198c1660008181526005845284902091909155835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610a1692600401614ce2565b600060405180830381600087803b158015610a3057600080fd5b505af1158015610a44573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610aeb57600080fd5b505af1158015610aff573d6000803e3d6000fd5b50505050505050505050505050505050565b6000610b2360e0830160c08401614ae9565b6001600160a01b03161480610b65575060036000610b4760e0840160c08501614ae9565b6001600160a01b0316815260208101919091526040016000205460ff165b610bb15760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f7420747275737465640000000000000000000000006044820152606401610735565b6000610bc36040830160208401614ae9565b610bd36060840160408501614d66565b610be3608085016060860161498d565b610bf360a086016080870161498d565b610c0360c0870160a08801614d90565b604051602001610c17959493929190614dba565b60408051601f1981840301815291905290506000610c8b610c3b6020850185614bae565b63ffffffff16610c4e6040870187614b54565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506127ec9050565b90506000610c98826129b7565b9050805160141415610d1e57610cad83612c5d565b6001600160601b031916610cc2826000612c84565b6001600160601b03191614610d195760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d62797465207363726970742068617368000000000000006044820152606401610735565b610e16565b805160201415610dce57600283604051610d38919061506a565b602060405180830381855afa158015610d55573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d789190615076565b610d8182612c9a565b14610d195760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d62797465207363726970742068617368000000000000006044820152606401610735565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e67746800000000000000006044820152606401610735565b6000610e7b610e286020880188614d90565b610e356020890189614b54565b610e4260408b018b614b54565b610e5260808d0160608e01614d90565b604051602001610e679695949392919061508f565b604051602081830303815290604052612cb6565b9050600060048183610e9060208a018a614bae565b604051602001610eb792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610f3b5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c656400000000000000006044820152606401610735565b6000610f4685612cdd565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610f8f6040880160208901614ae9565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610fde60e0880160c08901614ae9565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055600054600160a01b90046001600160401b031661102b576000611048565b60005461104890600160a01b90046001600160401b0316826150e7565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef05836110b960208a018a614bae565b6110c960408b0160208c01614ae9565b846110da60608d0160408e01614d66565b6110ea60808e0160608f0161498d565b8d60800160208101906110fd919061498d565b8e60a00160208101906111109190614d90565b8f60c00160208101906111239190614ae9565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b031633146112075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146112c05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6112ca6000612d53565b565b60006112d88585611f89565b90506113286112ea6020870187614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612db09050565b6001600160601b0319821660009081526008602052604090205460ff16600181600481111561135957611359614b04565b14806113765750600281600481111561137457611374614b04565b145b6113e85760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e674675647320737461746500000000000000000000000000000000000000006064820152608401610735565b60006114366113fa6040890189614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612fb5915050565b60608101519091506001600160401b0316156114c95782816040015182606001516040516020016114949392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b03198716600090815260059093529120556114e4565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061151d90849061010090046001600160401b031661510d565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516115879291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561161557600080fd5b505af1158015611629573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b1580156116e057600080fd5b505af11580156116f4573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561173157611731614b04565b1461177e5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e2041637469766520737461746500006044820152606401610735565b6001600160601b031985166000908152600560205260409020548061180b5760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401610735565b80853561181e6040880160208901614bae565b61182e6060890160408a01614bc9565b60405160200161186b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146118ce5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610735565b6000611900600060c01b86866040516020016118ec93929190615135565b6040516020818303038152906040526129b7565b905060008151116119795760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e6461726420747970650000000000000000000000000000000000006064820152608401610735565b8080519060200120876040516020016119a291906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611a2c5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b480000000000000000006064820152608401610735565b6001546001600160401b03600160401b90910481169084161015611a925760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c00000000006044820152606401610735565b6000878686604051602001611aa993929190615159565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615611b7a5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a401610735565b600154600090600160801b90046001600160401b0316611b9b576000611bb8565b600154611bb890600160801b90046001600160401b0316866150e7565b600154909150600160c01b90046001600160401b0316611bd8828761510d565b6001600160601b03198b1660009081526008602052604090208054600190611c0f90849061010090046001600160401b031661517d565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600860205260409081902054919091049091169150611c659060608c01908c01614bc9565b6001600160401b03161015611cbc5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e6473000000000000006044820152606401610735565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611dec918d918c918c91908c90899089906151a8565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611e8357600080fd5b505af1158015611e97573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611f015760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6001600160a01b038116611f7d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610735565b611f8681612d53565b50565b6000611fd5611f9b6020850185614b54565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506135ca92505050565b6120215760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f76696465640000006044820152606401610735565b61206b6120316040850185614b54565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061367a92505050565b6120b75760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f766964656400006044820152606401610735565b6120f16120c76020850185614d90565b6120d46020860186614b54565b6120e16040880188614b54565b610e5260808a0160608b01614d90565b90506120fd818361371d565b92915050565b600080600061211184613876565b9150508060011461218a5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f75747075740000000000000000000000000000000000000000006064820152608401610735565b600061219685826127ec565b90506121a181612cdd565b925060006121ae826129b7565b905080516014146122275760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f76652032302062797465730000000000000000000000000000000000000000006064820152608401610735565b60208101519450505050915091565b6122616040518060800160405280600081526020016060815260200160608152602001606081525090565b815115156000808061227287613876565b90925090506000612284836001614c82565b9050841561229c57612297600183614c9a565b61229e565b815b6001600160401b038111156122b5576122b5614be4565b6040519080825280602002602001820160405280156122de578160200160208202803683370190505b5060208701819052516001600160401b038111156122fe576122fe614be4565b604051908082528060200260200182016040528015612327578160200160208202803683370190505b5060408701526020860151516001600160401b0381111561234a5761234a614be4565b604051908082528060200260200182016040528015612373578160200160208202803683370190505b5060608701526000805b838110156126b45760008060006123948d8761388d565b92509250925060006004600085856040516020016123c992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615612605576001810154600160e01b900463ffffffff16156124645760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c726561647920737765707400000000000000000000006044820152606401610735565b8b60200151518614156124df5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e707574730000000000006064820152608401610735565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b03909216918890811061253857612538614cb1565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b0316918890811061257c5761257c614cb1565b6020026020010181815250508b60400151868151811061259e5761259e614cb1565b60200260200101518c6000018181516125b79190614c82565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106125e8576125e8614cb1565b6020908102919091010152856125fd81614cc7565b965050612691565b8915158b15151415801561261957508c5184145b15612649578c604001516001600160401b03168c60000181815161263d9190614c82565b90525060019950612691565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e707574207479706500000000000000000000000000006044820152606401610735565b61269b8288614c82565b96505050505080806126ac90614cc7565b91505061237d565b506000811161272b5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f736974000000000000000000000000006064820152608401610735565b841515861515146127a45760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e707574730000000000006064820152608401610735565b50505050505092915050565b600080806127be8587614c9a565b90506127ca848261521f565b9150836127d78383614c9a565b6127e19190615233565b925050935093915050565b60606000806127fa85613876565b909250905060001982141561285c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b6064820152608401610735565b8084106128ab5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e0000000000000000000000000000006044820152606401610735565b6000806128b9846001614c82565b905060005b86811015612942576128d088836138e5565b92506000198314156129245760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610735565b61292e8383614c82565b91508061293a81614cc7565b9150506128be565b5061294d87826138e5565b91506000198214156129a15760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610735565b6129ac878284613954565b979650505050505050565b60606000826008815181106129ce576129ce614cb1565b0160200151835160f89190911c91506129e8826009615247565b60ff1614612a06575050604080516020810190915260008152919050565b82600981518110612a1957612a19614cb1565b016020015160f81c612abf5760028160ff161015612a47575050604080516020810190915260008152919050565b600083600a81518110612a5c57612a5c614cb1565b016020015160f81c9050612a7160028361526c565b60ff1681141580612a8f575080602014158015612a8f575080601414155b15612aab57505060408051602081019091526000815292915050565b612ab784600b83613954565b949350505050565b6000612acc846008612c84565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612ba95783600b81518110612b2b57612b2b614cb1565b60209101015160f81c6014141580612b805750612b5660028551612b4f9190614c9a565b8590612c84565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612b9c57505060408051602081019091526000815292915050565b612ab784600c6014613954565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612c46578360018551612c029190614c9a565b81518110612c1257612c12614cb1565b60209101015160f81c608714612c3957505060408051602081019091526000815292915050565b612ab784600b6014613954565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612c938383016020015190565b9392505050565b6000815160001415612cae57506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612ce983613a1e565b60c01c90506000612ab78264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612e175760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c65740000006044820152606401610735565b808335612e2a6040860160208701614bae565b612e3a6060870160408801614bc9565b604051602001612e779392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612eda5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610735565b600080612ee686613a2a565b9092509050843582148015612f15575063ffffffff8116612f0d6040870160208801614bae565b63ffffffff16145b612fad5760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a401610735565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612fe385613876565b90925090506000612ff5836001614c82565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156135535760006130b78b876138e5565b905060006130c68c8884613954565b905060006130d382612cdd565b905060006130f160088085516130e99190614c9a565b859190613954565b90508b606001516001600160401b0316600014801561312457508051602082012088148061312457508051602082012087145b801561313957506000826001600160401b0316115b1561315e5763ffffffff851660408d01526001600160401b03821660608d0152613530565b60008d8260405160200161317392919061528f565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff161561337d576000818152600660205260408120600181015481549192916131e5916001600160401b0390811691600160a01b90041661510d565b60018301549091506001600160401b038087169161320c91600160401b909104168361510d565b6001600160401b0316111580156132355750806001600160401b0316856001600160401b031611155b6132cd5760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a401610735565b808f6000018181516132df919061517d565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151613323919061517d565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff191690558861337381614cc7565b995050505061352e565b60008181526007602052604090206001810154600160801b900463ffffffff1661340e5760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e000000000000000000000000000000000000000000000000000000006064820152608401610735565b60018101548154600091613436916001600160401b0391821691600160a01b9091041661510d565b60018301549091506001600160401b038087169161345d91600160401b909104168361510d565b6001600160401b0316111580156134865750806001600160401b0316856001600160401b031611155b61351e5760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a401610735565b8861352881614cc7565b99505050505b505b61353a848a614c82565b985050505050808061354b90614cc7565b9150506130a3565b50600081116127a45760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e00000000006064820152608401610735565b60008060006135d884613876565b90925090508015806135eb575060001982145b156135fa575060009392505050565b6000613607836001614c82565b905060005b8281101561366d57855182106136285750600095945050505050565b60006136348784613adf565b905060001981141561364d575060009695505050505050565b6136578184614c82565b925050808061366590614cc7565b91505061360c565b5093519093149392505050565b600080600061368884613876565b909250905080158061369b575060001982145b156136aa575060009392505050565b60006136b7836001614c82565b905060005b8281101561366d57855182106136d85750600095945050505050565b60006136e487846138e5565b90506000198114156136fd575060009695505050505050565b6137078184614c82565b925050808061371590614cc7565b9150506136bc565b6137b661376a6137306040840184614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b2a92505050565b6137748380614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613b37565b6138285760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e642074782068617368000000006064820152608401610735565b6138726138386040830183614b54565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613b6a92505050565b5050565b600080613884836000613f00565b91509150915091565b6000808061389b8585612c84565b92506138d06138aa868661407c565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506138dc8585613adf565b90509250925092565b60006138f2826009614c82565b8351101561390357506000196120fd565b60008061391a85613915866008614c82565b613f00565b909250905060001982141561393557600019925050506120fd565b80613941836009614c82565b61394b9190614c82565b95945050505050565b6060816139705750604080516020810190915260008152612c93565b600061397c8385614c82565b9050838111801561398e575080855110155b6139da5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610735565b604051915082604083010160405282825283850182038460208701018481015b80821015613a13578151838301526020820191506139fa565b505050509392505050565b60006120fd8282612c84565b6000806000613a3884613876565b91505080600114613ab15760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e70757400000000000000000000000000000000006064820152608401610735565b6000613abd8582614093565b9050613ac881614248565b9350613ad66138aa82614255565b92505050915091565b6000806000613aee8585614262565b9092509050600019821415613b0957600019925050506120fd565b80613b15836025614c82565b613b1f9190614c82565b61394b906004614c82565b60448101516000906120fd565b60008385148015613b46575081155b8015613b5157508251155b15613b5e57506001612ab7565b61394b858486856142a4565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b158015613bc657600080fd5b505afa158015613bda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bfe9190615076565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015613c5b57600080fd5b505afa158015613c6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c939190615076565b90506000613ca8613ca38661434c565b6143e1565b905082811415613cba57829350613d38565b81811415613cca57819350613d38565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c74790000000000000000000000000000000000000000000000000000006064820152608401610735565b6000613d4386614409565b9050600019811415613dbd5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e00000000000000000000000000000000000000000000000000000000006064820152608401610735565b600119811415613e0f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e00000000000000000000006044820152606401610735565b600219811415613e615760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e2061206865616465720000006044820152606401610735565b613e8b7f0000000000000000000000000000000000000000000000000000000000000000866152ab565b811015612fad5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e000000000000000000000000006064820152608401610735565b6000806000613f0f8585614610565b905060ff8116613f41576000858581518110613f2d57613f2d614cb1565b016020015190935060f81c91506140759050565b83613f4d826001615247565b60ff16613f5a9190614c82565b85511015613f715760001960009250925050614075565b60008160ff1660021415613fb657613fab613f97613f90876001614c82565b8890612c84565b62ffff0060e882901c1660f89190911c1790565b61ffff16905061406b565b8160ff1660041415613fe057613fd36138aa613f90876001614c82565b63ffffffff16905061406b565b8160ff166008141561406b5761405f613ffd613f90876001614c82565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612c9361408c836020614c82565b8490612c84565b60606000806140a185613876565b90925090506000198214156141035760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b6064820152608401610735565b8084106141525760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e000000000000000000000000000000006044820152606401610735565b600080614160846001614c82565b905060005b868110156141e9576141778883613adf565b92506000198314156141cb5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610735565b6141d58383614c82565b9150806141e181614cc7565b915050614165565b506141f48782613adf565b91506000198214156129a15760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610735565b60208101516000906120fd565b60006120fd826020612c84565b600080614270836025614c82565b84511015614285575060001990506000614075565b60008061429786613915876024614c82565b9097909650945050505050565b6000602084516142b4919061521f565b156142c157506000612ab7565b83516142cf57506000612ab7565b818560005b865181101561433f576142e860028461521f565b6001141561430d576143066143008883016020015190565b8361469c565b9150614326565b6143238261431e8984016020015190565b61469c565b91505b60019290921c91614338602082614c82565b90506142d4565b5090931495945050505050565b60008061435a836048612c84565b60e81c9050600083604b8151811061437457614374614cb1565b016020015160f81c905060006143a883600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006143bc60038461526c565b60ff1690506143cd816101006153ae565b6143d790836152ab565b9695505050505050565b60006120fd7bffff0000000000000000000000000000000000000000000000000000836146a8565b600060508251614419919061521f565b156144275750600019919050565b506040805160808101909152605081526000908190815b8451811015614608576144528583836146b4565b8015614472576144628284614753565b6144725750600119949350505050565b600061447d8361434c565b905061448883612cb6565b9350806145cc8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b11156145df575060021995945050505050565b6145f26145eb826143e1565b869061477c565b94506146019050605082614c82565b905061443e565b505050919050565b600082828151811061462457614624614cb1565b60209101015160f81c60ff141561463d575060086120fd565b82828151811061464f5761464f614cb1565b60209101015160f81c60fe1415614668575060046120fd565b82828151811061467a5761467a614cb1565b60209101015160f81c60fd1415614693575060026120fd565b50600092915050565b6000612c9383836147da565b6000612c938284615233565b815160006146c28284614c82565b905082811180156146d4575080855110155b6147205760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610735565b826020860101602085018382015b8083101561474957825182526020928301929091019061472e565b5050505050505050565b60008061475f84614808565b90508281146147725760009150506120fd565b5060019392505050565b60006147888284614c82565b9050828110156120fd5760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e000000000000006044820152606401610735565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906120fd565b60006020828403121561482757600080fd5b5035919050565b60006080828403121561484057600080fd5b50919050565b60006060828403121561484057600080fd5b600080600060a0848603121561486d57600080fd5b83356001600160401b038082111561488457600080fd5b6148908783880161482e565b945060208601359150808211156148a657600080fd5b506148b386828701614846565b9250506138dc8560408601614846565b6000808284036101008112156148d857600080fd5b83356001600160401b038111156148ee57600080fd5b6148fa8682870161482e565b93505060e0601f198201121561490f57600080fd5b506020830190509250929050565b80356001600160a01b038116811461493457600080fd5b919050565b6000806040838503121561494c57600080fd5b6149558361491d565b91506020830135801515811461496a57600080fd5b809150509250929050565b80356001600160601b03198116811461493457600080fd5b60006020828403121561499f57600080fd5b612c9382614975565b60008060008060c085870312156149be57600080fd5b84356001600160401b03808211156149d557600080fd5b6149e18883890161482e565b955060208701359150808211156149f757600080fd5b50614a0487828801614846565b935050614a148660408701614846565b9150614a2260a08601614975565b905092959194509250565b80356001600160401b038116811461493457600080fd5b600080600080600060c08688031215614a5c57600080fd5b614a6586614975565b9450614a748760208801614846565b935060808601356001600160401b0380821115614a9057600080fd5b818801915088601f830112614aa457600080fd5b813581811115614ab357600080fd5b896020828501011115614ac557600080fd5b602083019550809450505050614add60a08701614a2d565b90509295509295909350565b600060208284031215614afb57600080fd5b612c938261491d565b634e487b7160e01b600052602160045260246000fd5b6040810160058410614b3c57634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e19843603018112614b6b57600080fd5b8301803591506001600160401b03821115614b8557600080fd5b60200191503681900382131561407557600080fd5b803563ffffffff8116811461493457600080fd5b600060208284031215614bc057600080fd5b612c9382614b9a565b600060208284031215614bdb57600080fd5b612c9382614a2d565b634e487b7160e01b600052604160045260246000fd5b600060608284031215614c0c57600080fd5b604051606081018181106001600160401b0382111715614c3c57634e487b7160e01b600052604160045260246000fd5b60405282358152614c4f60208401614b9a565b6020820152614c6060408401614a2d565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115614c9557614c95614c6c565b500190565b600082821015614cac57614cac614c6c565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415614cdb57614cdb614c6c565b5060010190565b604080825283519082018190526000906020906060840190828701845b82811015614d245781516001600160a01b031684529284019290840190600101614cff565b5050508381038285015284518082528583019183019060005b81811015614d5957835183529284019291840191600101614d3d565b5090979650505050505050565b600060208284031215614d7857600080fd5b81356001600160c01b031981168114612c9357600080fd5b600060208284031215614da257600080fd5b81356001600160e01b031981168114612c9357600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614e8e614e81614e58602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614f4d614e81614e58614e2f614f24601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050615023614ffa60068301614efb565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b818110156150505760208185018101518683015201615036565b8181111561505f576000828601525b509290920192915050565b6000612c93828461502f565b60006020828403121561508857600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680615101576151016150d1565b92169190910492915050565b60006001600160401b038381169083168181101561512d5761512d614c6c565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b0380831681851680830382111561519f5761519f614c6c565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b60008261522e5761522e6150d1565b500690565b600082615242576152426150d1565b500490565b600060ff821660ff84168060ff0382111561526457615264614c6c565b019392505050565b600060ff821660ff84168082101561528657615286614c6c565b90039392505050565b6001600160601b0319831681526000612ab7601483018461502f565b60008160001904831182151516156152c5576152c5614c6c565b500290565b600181815b808511156153055781600019048211156152eb576152eb614c6c565b808516156152f857918102915b93841c93908002906152cf565b509250929050565b60008261531c575060016120fd565b81615329575060006120fd565b816001811461533f576002811461534957615365565b60019150506120fd565b60ff84111561535a5761535a614c6c565b50506001821b6120fd565b5060208310610133831016604e8410600b8410161715615388575081810a6120fd565b61539283836152ca565b80600019048211156153a6576153a6614c6c565b029392505050565b6000612c93838361530d56fea2646970667358221220dec45ad64bce02ab846f6d5cc9802355d120fef2c39868d31f88663c583c446e64736f6c63430008090033",
|
|
865
|
-
"linkReferences": {
|
|
866
|
-
|
|
863
|
+
"bytecode": "0x6101006040523480156200001257600080fd5b5060405162004cdb38038062004cdb83398101604081905262000035916200021d565b6200004033620001b0565b6001600160a01b0384166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660a0528316620000fa5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160a01b0380841660c0528216620001585760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b6001600160a01b039190911660e052608052505060008054600160a01b600160e01b031916607d60a41b1790557903e800000000000007d000000000000f424000000000000003e86001556202a3006002556200026f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021857600080fd5b919050565b600080600080608085870312156200023457600080fd5b6200023f8562000200565b93506200024f6020860162000200565b92506200025f6040860162000200565b6060959095015193969295505050565b60805160a05160c05160e0516149ec620002ef6000396000818161035701528181610afe01526117720152600081816104d8015281816120bf015261215901526000818161039e01528181610a6b01528181610b2d015281816116d9015281816117aa0152611f470152600081816102f501526121ef01526149ec6000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80638da5cb5b116100e3578063cb7f3a091161008c578063e65e19d511610066578063e65e19d51461056d578063e95eb7a8146105ae578063f2fde38b146105c857600080fd5b8063cb7f3a0914610514578063d6eccdf014610527578063e53c0b551461053a57600080fd5b8063b34b3216116100bd578063b34b3216146104c0578063b59589d1146104d3578063bdf9fca9146104fa57600080fd5b80638da5cb5b146103e0578063a588f059146103f1578063b02c43d01461040b57600080fd5b80635c0b481211610145578063715018a61161011f578063715018a61461039157806376cdb03b1461039957806383a43428146103c057600080fd5b80635c0b48121461032c57806360d712fc1461033f57806361d027b31461035257600080fd5b80631fff4e70116101765780631fff4e70146102d95780632bb818c2146102f057806359a9d90a1461031757600080fd5b806303d952f71461019d578063079bf52c146102485780630b6ba19d1461027a575b600080fd5b6101fc6101ab366004613dc2565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b60005461026290600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161023f565b6101fc610288366004613dc2565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e260025481565b60405190815260200161023f565b6102e27f000000000000000000000000000000000000000000000000000000000000000081565b61032a610325366004613e05565b6105db565b005b61032a61033a366004613e70565b610b99565b61032a61034d366004613ee6565b611235565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b61032a6112ee565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6102e26103ce366004613f3a565b60056020526000908152604090205481565b6000546001600160a01b0316610379565b60015461026290600160c01b90046001600160401b031681565b610470610419366004613dc2565b600460205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161023f565b61032a6104ce366004613f55565b611354565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60015461026290600160401b90046001600160401b031681565b600154610262906001600160401b031681565b61032a610535366004613ff1565b611811565b61055d610548366004614096565b60036020526000908152604090205460ff1681565b604051901515815260200161023f565b6105a061057b366004613f3a565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161023f9291906140c7565b60015461026290600160801b90046001600160401b031681565b61032a6105d6366004614096565b611fb7565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae1348585610601612099565b6040518463ffffffff1660e01b815260040161061f93929190614187565b60206040518083038186803b15801561063757600080fd5b505af415801561064b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066f9190614282565b90506000806106be610684604088018861429b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061221692505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156107d8578086356107116040890160208a016142f5565b61072160608a0160408b01614310565b60405160200161075e9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146107c65760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6107d536879003870187614341565b91505b60006108266107ea60208b018b61429b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612349915050565b9050600080806108498460000151886001600160401b03168660400151516128c4565b60015491935091506001600160401b031661086482846143c9565b11156108b25760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016107bd565b60005b8460400151518110156109a057600060018660400151516108d691906143e1565b82146108e257836108ec565b6108ec83856143c9565b90508086606001518381518110610905576109056143f8565b602002602001015187604001518481518110610923576109236143f8565b602002602001015161093591906143e1565b61093f91906143e1565b86604001518381518110610955576109556143f8565b60200260200101818152505085606001518281518110610977576109776143f8565b60200260200101518561098a91906143c9565b94505080806109989061440e565b9150506108b5565b5060408051602081018b90526000918101919091526001600160c01b031960c089901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198c1660008181526005845284902091909155835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610a9e92600401614429565b600060405180830381600087803b158015610ab857600080fd5b505af1158015610acc573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610b7357600080fd5b505af1158015610b87573d6000803e3d6000fd5b50505050505050505050505050505050565b6000610bab60e0830160c08401614096565b6001600160a01b03161480610bed575060036000610bcf60e0840160c08501614096565b6001600160a01b0316815260208101919091526040016000205460ff165b610c395760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016107bd565b6000610c4b6040830160208401614096565b610c5b60608401604085016144ad565b610c6b6080850160608601613f3a565b610c7b60a0860160808701613f3a565b610c8b60c0870160a088016144d7565b604051602001610c9f9594939291906144f2565b60408051601f1981840301815291905290506000610d13610cc360208501856142f5565b63ffffffff16610cd6604087018761429b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506129009050565b90506000610d2082612acb565b9050805160141415610da657610d3583612d71565b6001600160601b031916610d4a826000612d98565b6001600160601b03191614610da15760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016107bd565b610e9e565b805160201415610e5657600283604051610dc091906147a2565b602060405180830381855afa158015610ddd573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e009190614282565b610e0982612dae565b14610da15760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016107bd565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016107bd565b6000610f03610eb060208801886144d7565b610ebd602089018961429b565b610eca60408b018b61429b565b610eda60808d0160608e016144d7565b604051602001610eef969594939291906147ae565b604051602081830303815290604052612dca565b9050600060048183610f1860208a018a6142f5565b604051602001610f3f92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610fc35760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016107bd565b6000610fce85612df1565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b0383160217835590506110176040880160208901614096565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff160217825561106660e0880160c08901614096565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055600054600160a01b90046001600160401b03166110b35760006110d0565b6000546110d090600160a01b90046001600160401b031682614806565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef058361114160208a018a6142f5565b61115160408b0160208c01614096565b8461116260608d0160408e016144ad565b61117260808e0160608f01613f3a565b8d60800160208101906111859190613f3a565b8e60a001602081019061119891906144d7565b8f60c00160208101906111ab9190614096565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b0316331461128f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6113526000612e67565b565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae134868661137a612099565b6040518463ffffffff1660e01b815260040161139893929190614187565b60206040518083038186803b1580156113b057600080fd5b505af41580156113c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e89190614282565b90506114386113fa602087018761429b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612ec49050565b6001600160601b0319821660009081526008602052604090205460ff166001816004811115611469576114696140b1565b148061148657506002816004811115611484576114846140b1565b145b6114f85760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016107bd565b600061154661150a604089018961429b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506130c9915050565b60608101519091506001600160401b0316156115d95782816040015182606001516040516020016115a49392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b03198716600090815260059093529120556115f4565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061162d90849061010090046001600160401b031661482c565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516116979291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b1580156117f057600080fd5b505af1158015611804573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff166004811115611841576118416140b1565b1461188e5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016107bd565b6001600160601b031985166000908152600560205260409020548061191b5760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016107bd565b80853561192e60408801602089016142f5565b61193e6060890160408a01614310565b60405160200161197b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146119de5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107bd565b6000611a10600060c01b86866040516020016119fc93929190614854565b604051602081830303815290604052612acb565b90506000815111611a895760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016107bd565b808051906020012087604051602001611ab291906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611b3c5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016107bd565b6001546001600160401b03600160401b90910481169084161015611ba25760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016107bd565b6000878686604051602001611bb993929190614878565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615611c8a5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016107bd565b600154600090600160801b90046001600160401b0316611cab576000611cc8565b600154611cc890600160801b90046001600160401b031686614806565b600154909150600160c01b90046001600160401b0316611ce8828761482c565b6001600160601b03198b1660009081526008602052604090208054600190611d1f90849061010090046001600160401b031661489c565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600860205260409081902054919091049091169150611d759060608c01908c01614310565b6001600160401b03161015611dcc5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016107bd565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611efc918d918c918c91908c90899089906148c7565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611f9357600080fd5b505af1158015611fa7573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b031633146120115760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6001600160a01b03811661208d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bd565b61209681612e67565b50565b6120bd60405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561211657600080fd5b505afa15801561212a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214e9190614282565b8160000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b057600080fd5b505afa1580156121c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e89190614282565b60208201527f0000000000000000000000000000000000000000000000000000000000000000604082015290565b6000806000612224846136de565b9150508060011461229d5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016107bd565b60006122a98582612900565b90506122b481612df1565b925060006122c182612acb565b9050805160141461233a5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016107bd565b60208101519450505050915091565b6123746040518060800160405280600081526020016060815260200160608152602001606081525090565b8151151560008080612385876136de565b909250905060006123978360016143c9565b905084156123af576123aa6001836143e1565b6123b1565b815b6001600160401b038111156123c8576123c861432b565b6040519080825280602002602001820160405280156123f1578160200160208202803683370190505b5060208701819052516001600160401b038111156124115761241161432b565b60405190808252806020026020018201604052801561243a578160200160208202803683370190505b5060408701526020860151516001600160401b0381111561245d5761245d61432b565b604051908082528060200260200182016040528015612486578160200160208202803683370190505b5060608701526000805b838110156127c75760008060006124a78d876136f5565b92509250925060006004600085856040516020016124dc92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615612718576001810154600160e01b900463ffffffff16156125775760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016107bd565b8b60200151518614156125f25760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107bd565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b03909216918890811061264b5761264b6143f8565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b0316918890811061268f5761268f6143f8565b6020026020010181815250508b6040015186815181106126b1576126b16143f8565b60200260200101518c6000018181516126ca91906143c9565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106126fb576126fb6143f8565b6020908102919091010152856127108161440e565b9650506127a4565b8915158b15151415801561272c57508c5184145b1561275c578c604001516001600160401b03168c60000181815161275091906143c9565b905250600199506127a4565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016107bd565b6127ae82886143c9565b96505050505080806127bf9061440e565b915050612490565b506000811161283e5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016107bd565b841515861515146128b75760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107bd565b5050505050505b92915050565b600080806128d285876143e1565b90506128de848261492a565b9150836128eb83836143e1565b6128f5919061493e565b925050935093915050565b606060008061290e856136de565b90925090506000198214156129705760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107bd565b8084106129bf5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016107bd565b6000806129cd8460016143c9565b905060005b86811015612a56576129e4888361374d565b9250600019831415612a385760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107bd565b612a4283836143c9565b915080612a4e8161440e565b9150506129d2565b50612a61878261374d565b9150600019821415612ab55760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107bd565b612ac08782846137bc565b979650505050505050565b6060600082600881518110612ae257612ae26143f8565b0160200151835160f89190911c9150612afc826009614952565b60ff1614612b1a575050604080516020810190915260008152919050565b82600981518110612b2d57612b2d6143f8565b016020015160f81c612bd35760028160ff161015612b5b575050604080516020810190915260008152919050565b600083600a81518110612b7057612b706143f8565b016020015160f81c9050612b85600283614977565b60ff1681141580612ba3575080602014158015612ba3575080601414155b15612bbf57505060408051602081019091526000815292915050565b612bcb84600b836137bc565b949350505050565b6000612be0846008612d98565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612cbd5783600b81518110612c3f57612c3f6143f8565b60209101015160f81c6014141580612c945750612c6a60028551612c6391906143e1565b8590612d98565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612cb057505060408051602081019091526000815292915050565b612bcb84600c60146137bc565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612d5a578360018551612d1691906143e1565b81518110612d2657612d266143f8565b60209101015160f81c608714612d4d57505060408051602081019091526000815292915050565b612bcb84600b60146137bc565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612da78383016020015190565b9392505050565b6000815160001415612dc257506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612dfd83613886565b60c01c90506000612bcb8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612f2b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016107bd565b808335612f3e60408601602087016142f5565b612f4e6060870160408801614310565b604051602001612f8b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612fee5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107bd565b600080612ffa86613892565b9092509050843582148015613029575063ffffffff811661302160408701602088016142f5565b63ffffffff16145b6130c15760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016107bd565b505050505050565b604080516080810182526000808252602082018190529181018290526060810182905290806130f7856136de565b909250905060006131098360016143c9565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156136675760006131cb8b8761374d565b905060006131da8c88846137bc565b905060006131e782612df1565b9050600061320560088085516131fd91906143e1565b8591906137bc565b90508b606001516001600160401b0316600014801561323857508051602082012088148061323857508051602082012087145b801561324d57506000826001600160401b0316115b156132725763ffffffff851660408d01526001600160401b03821660608d0152613644565b60008d8260405160200161328792919061499a565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615613491576000818152600660205260408120600181015481549192916132f9916001600160401b0390811691600160a01b90041661482c565b60018301549091506001600160401b038087169161332091600160401b909104168361482c565b6001600160401b0316111580156133495750806001600160401b0316856001600160401b031611155b6133e15760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016107bd565b808f6000018181516133f3919061489c565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151613437919061489c565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff19169055886134878161440e565b9950505050613642565b60008181526007602052604090206001810154600160801b900463ffffffff166135225760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016107bd565b6001810154815460009161354a916001600160401b0391821691600160a01b9091041661482c565b60018301549091506001600160401b038087169161357191600160401b909104168361482c565b6001600160401b03161115801561359a5750806001600160401b0316856001600160401b031611155b6136325760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016107bd565b8861363c8161440e565b99505050505b505b61364e848a6143c9565b985050505050808061365f9061440e565b9150506131b7565b50600081116128b75760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016107bd565b6000806136ec836000613947565b91509150915091565b600080806137038585612d98565b92506137386137128686613ac3565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506137448585613ada565b90509250925092565b600061375a8260096143c9565b8351101561376b57506000196128be565b6000806137828561377d8660086143c9565b613947565b909250905060001982141561379d57600019925050506128be565b806137a98360096143c9565b6137b391906143c9565b95945050505050565b6060816137d85750604080516020810190915260008152612da7565b60006137e483856143c9565b905083811180156137f6575080855110155b6138425760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016107bd565b604051915082604083010160405282825283850182038460208701018481015b8082101561387b57815183830152602082019150613862565b505050509392505050565b60006128be8282612d98565b60008060006138a0846136de565b915050806001146139195760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016107bd565b60006139258582613b25565b905061393081613cda565b935061393e61371282613ce7565b92505050915091565b60008060006139568585613cf4565b905060ff8116613988576000858581518110613974576139746143f8565b016020015190935060f81c9150613abc9050565b83613994826001614952565b60ff166139a191906143c9565b855110156139b85760001960009250925050613abc565b60008160ff16600214156139fd576139f26139de6139d78760016143c9565b8890612d98565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613ab2565b8160ff1660041415613a2757613a1a6137126139d78760016143c9565b63ffffffff169050613ab2565b8160ff1660081415613ab257613aa6613a446139d78760016143c9565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612da7613ad38360206143c9565b8490612d98565b6000806000613ae98585613d80565b9092509050600019821415613b0457600019925050506128be565b80613b108360256143c9565b613b1a91906143c9565b6137b39060046143c9565b6060600080613b33856136de565b9092509050600019821415613b955760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107bd565b808410613be45760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016107bd565b600080613bf28460016143c9565b905060005b86811015613c7b57613c098883613ada565b9250600019831415613c5d5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107bd565b613c6783836143c9565b915080613c738161440e565b915050613bf7565b50613c868782613ada565b9150600019821415612ab55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107bd565b60208101516000906128be565b60006128be826020612d98565b6000828281518110613d0857613d086143f8565b60209101015160f81c60ff1415613d21575060086128be565b828281518110613d3357613d336143f8565b60209101015160f81c60fe1415613d4c575060046128be565b828281518110613d5e57613d5e6143f8565b60209101015160f81c60fd1415613d77575060026128be565b50600092915050565b600080613d8e8360256143c9565b84511015613da3575060001990506000613abc565b600080613db58661377d8760246143c9565b9097909650945050505050565b600060208284031215613dd457600080fd5b5035919050565b600060808284031215613ded57600080fd5b50919050565b600060608284031215613ded57600080fd5b600080600060a08486031215613e1a57600080fd5b83356001600160401b0380821115613e3157600080fd5b613e3d87838801613ddb565b94506020860135915080821115613e5357600080fd5b50613e6086828701613df3565b9250506137448560408601613df3565b600080828403610100811215613e8557600080fd5b83356001600160401b03811115613e9b57600080fd5b613ea786828701613ddb565b93505060e0601f1982011215613ebc57600080fd5b506020830190509250929050565b80356001600160a01b0381168114613ee157600080fd5b919050565b60008060408385031215613ef957600080fd5b613f0283613eca565b915060208301358015158114613f1757600080fd5b809150509250929050565b80356001600160601b031981168114613ee157600080fd5b600060208284031215613f4c57600080fd5b612da782613f22565b60008060008060c08587031215613f6b57600080fd5b84356001600160401b0380821115613f8257600080fd5b613f8e88838901613ddb565b95506020870135915080821115613fa457600080fd5b50613fb187828801613df3565b935050613fc18660408701613df3565b9150613fcf60a08601613f22565b905092959194509250565b80356001600160401b0381168114613ee157600080fd5b600080600080600060c0868803121561400957600080fd5b61401286613f22565b94506140218760208801613df3565b935060808601356001600160401b038082111561403d57600080fd5b818801915088601f83011261405157600080fd5b81358181111561406057600080fd5b89602082850101111561407257600080fd5b60208301955080945050505061408a60a08701613fda565b90509295509295909350565b6000602082840312156140a857600080fd5b612da782613eca565b634e487b7160e01b600052602160045260246000fd5b60408101600584106140e957634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b80356001600160e01b031981168114613ee157600080fd5b6000808335601e1984360301811261413057600080fd5b83016020810192503590506001600160401b0381111561414f57600080fd5b803603831315613abc57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60a0815260006001600160e01b0319806141a087614101565b1660a08401526141b36020870187614119565b608060c08601526141c96101208601828461415e565b9150506141d96040880188614119565b858303609f190160e08701526141f083828461415e565b925050508161420160608901614101565b16610100850152838103602085015261421a8687614119565b92506060825261422e60608301848361415e565b925050602086013560208201526142486040870187614119565b828403604084015261425b84828461415e565b945050505050612bcb60408301848051825260208082015190830152604090810151910152565b60006020828403121561429457600080fd5b5051919050565b6000808335601e198436030181126142b257600080fd5b8301803591506001600160401b038211156142cc57600080fd5b602001915036819003821315613abc57600080fd5b803563ffffffff81168114613ee157600080fd5b60006020828403121561430757600080fd5b612da7826142e1565b60006020828403121561432257600080fd5b612da782613fda565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561435357600080fd5b604051606081018181106001600160401b038211171561438357634e487b7160e01b600052604160045260246000fd5b60405282358152614396602084016142e1565b60208201526143a760408401613fda565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156143dc576143dc6143b3565b500190565b6000828210156143f3576143f36143b3565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415614422576144226143b3565b5060010190565b604080825283519082018190526000906020906060840190828701845b8281101561446b5781516001600160a01b031684529284019290840190600101614446565b5050508381038285015284518082528583019183019060005b818110156144a057835183529284019291840191600101614484565b5090979650505050505050565b6000602082840312156144bf57600080fd5b81356001600160c01b031981168114612da757600080fd5b6000602082840312156144e957600080fd5b612da782614101565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f82015260006145c66145b9614590602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526146856145b961459061456761465c601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b6005820152905061475b61473260068301614633565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614788576020818501810151868301520161476e565b81811115614797576000828601525b509290920192915050565b6000612da78284614767565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680614820576148206147f0565b92169190910492915050565b60006001600160401b038381169083168181101561484c5761484c6143b3565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b038083168185168083038211156148be576148be6143b3565b01949350505050565b6bffffffffffffffffffffffff198816815260c0602082015260006148f060c08301888a61415e565b6001600160a01b03969096166040830152506001600160401b039384166060820152918316608083015290911660a0909101529392505050565b600082614939576149396147f0565b500690565b60008261494d5761494d6147f0565b500490565b600060ff821660ff84168060ff0382111561496f5761496f6143b3565b019392505050565b600060ff821660ff841680821015614991576149916143b3565b90039392505050565b6001600160601b0319831681526000612bcb601483018461476756fea264697066735822122004d089b6d7ee7df533a75e96055f0d9c61bafe7e0707287b2a83e34f7a81bbd664736f6c63430008090033",
|
|
864
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101985760003560e01c80638da5cb5b116100e3578063cb7f3a091161008c578063e65e19d511610066578063e65e19d51461056d578063e95eb7a8146105ae578063f2fde38b146105c857600080fd5b8063cb7f3a0914610514578063d6eccdf014610527578063e53c0b551461053a57600080fd5b8063b34b3216116100bd578063b34b3216146104c0578063b59589d1146104d3578063bdf9fca9146104fa57600080fd5b80638da5cb5b146103e0578063a588f059146103f1578063b02c43d01461040b57600080fd5b80635c0b481211610145578063715018a61161011f578063715018a61461039157806376cdb03b1461039957806383a43428146103c057600080fd5b80635c0b48121461032c57806360d712fc1461033f57806361d027b31461035257600080fd5b80631fff4e70116101765780631fff4e70146102d95780632bb818c2146102f057806359a9d90a1461031757600080fd5b806303d952f71461019d578063079bf52c146102485780630b6ba19d1461027a575b600080fd5b6101fc6101ab366004613dc2565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b60005461026290600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161023f565b6101fc610288366004613dc2565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e260025481565b60405190815260200161023f565b6102e27f000000000000000000000000000000000000000000000000000000000000000081565b61032a610325366004613e05565b6105db565b005b61032a61033a366004613e70565b610b99565b61032a61034d366004613ee6565b611235565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b61032a6112ee565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6102e26103ce366004613f3a565b60056020526000908152604090205481565b6000546001600160a01b0316610379565b60015461026290600160c01b90046001600160401b031681565b610470610419366004613dc2565b600460205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161023f565b61032a6104ce366004613f55565b611354565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60015461026290600160401b90046001600160401b031681565b600154610262906001600160401b031681565b61032a610535366004613ff1565b611811565b61055d610548366004614096565b60036020526000908152604090205460ff1681565b604051901515815260200161023f565b6105a061057b366004613f3a565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161023f9291906140c7565b60015461026290600160801b90046001600160401b031681565b61032a6105d6366004614096565b611fb7565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae1348585610601612099565b6040518463ffffffff1660e01b815260040161061f93929190614187565b60206040518083038186803b15801561063757600080fd5b505af415801561064b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061066f9190614282565b90506000806106be610684604088018861429b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061221692505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156107d8578086356107116040890160208a016142f5565b61072160608a0160408b01614310565b60405160200161075e9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146107c65760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6107d536879003870187614341565b91505b60006108266107ea60208b018b61429b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612349915050565b9050600080806108498460000151886001600160401b03168660400151516128c4565b60015491935091506001600160401b031661086482846143c9565b11156108b25760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016107bd565b60005b8460400151518110156109a057600060018660400151516108d691906143e1565b82146108e257836108ec565b6108ec83856143c9565b90508086606001518381518110610905576109056143f8565b602002602001015187604001518481518110610923576109236143f8565b602002602001015161093591906143e1565b61093f91906143e1565b86604001518381518110610955576109556143f8565b60200260200101818152505085606001518281518110610977576109776143f8565b60200260200101518561098a91906143c9565b94505080806109989061440e565b9150506108b5565b5060408051602081018b90526000918101919091526001600160c01b031960c089901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198c1660008181526005845284902091909155835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610a9e92600401614429565b600060405180830381600087803b158015610ab857600080fd5b505af1158015610acc573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610b7357600080fd5b505af1158015610b87573d6000803e3d6000fd5b50505050505050505050505050505050565b6000610bab60e0830160c08401614096565b6001600160a01b03161480610bed575060036000610bcf60e0840160c08501614096565b6001600160a01b0316815260208101919091526040016000205460ff165b610c395760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016107bd565b6000610c4b6040830160208401614096565b610c5b60608401604085016144ad565b610c6b6080850160608601613f3a565b610c7b60a0860160808701613f3a565b610c8b60c0870160a088016144d7565b604051602001610c9f9594939291906144f2565b60408051601f1981840301815291905290506000610d13610cc360208501856142f5565b63ffffffff16610cd6604087018761429b565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506129009050565b90506000610d2082612acb565b9050805160141415610da657610d3583612d71565b6001600160601b031916610d4a826000612d98565b6001600160601b03191614610da15760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016107bd565b610e9e565b805160201415610e5657600283604051610dc091906147a2565b602060405180830381855afa158015610ddd573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e009190614282565b610e0982612dae565b14610da15760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016107bd565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016107bd565b6000610f03610eb060208801886144d7565b610ebd602089018961429b565b610eca60408b018b61429b565b610eda60808d0160608e016144d7565b604051602001610eef969594939291906147ae565b604051602081830303815290604052612dca565b9050600060048183610f1860208a018a6142f5565b604051602001610f3f92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610fc35760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016107bd565b6000610fce85612df1565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b0383160217835590506110176040880160208901614096565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff160217825561106660e0880160c08901614096565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055600054600160a01b90046001600160401b03166110b35760006110d0565b6000546110d090600160a01b90046001600160401b031682614806565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef058361114160208a018a6142f5565b61115160408b0160208c01614096565b8461116260608d0160408e016144ad565b61117260808e0160608f01613f3a565b8d60800160208101906111859190613f3a565b8e60a001602081019061119891906144d7565b8f60c00160208101906111ab9190614096565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b0316331461128f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146113485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6113526000612e67565b565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae134868661137a612099565b6040518463ffffffff1660e01b815260040161139893929190614187565b60206040518083038186803b1580156113b057600080fd5b505af41580156113c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e89190614282565b90506114386113fa602087018761429b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612ec49050565b6001600160601b0319821660009081526008602052604090205460ff166001816004811115611469576114696140b1565b148061148657506002816004811115611484576114846140b1565b145b6114f85760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016107bd565b600061154661150a604089018961429b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508892506130c9915050565b60608101519091506001600160401b0316156115d95782816040015182606001516040516020016115a49392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b03198716600090815260059093529120556115f4565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061162d90849061010090046001600160401b031661482c565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516116979291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561172557600080fd5b505af1158015611739573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b1580156117f057600080fd5b505af1158015611804573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff166004811115611841576118416140b1565b1461188e5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016107bd565b6001600160601b031985166000908152600560205260409020548061191b5760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016107bd565b80853561192e60408801602089016142f5565b61193e6060890160408a01614310565b60405160200161197b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146119de5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107bd565b6000611a10600060c01b86866040516020016119fc93929190614854565b604051602081830303815290604052612acb565b90506000815111611a895760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016107bd565b808051906020012087604051602001611ab291906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611b3c5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016107bd565b6001546001600160401b03600160401b90910481169084161015611ba25760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016107bd565b6000878686604051602001611bb993929190614878565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615611c8a5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016107bd565b600154600090600160801b90046001600160401b0316611cab576000611cc8565b600154611cc890600160801b90046001600160401b031686614806565b600154909150600160c01b90046001600160401b0316611ce8828761482c565b6001600160601b03198b1660009081526008602052604090208054600190611d1f90849061010090046001600160401b031661489c565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600860205260409081902054919091049091169150611d759060608c01908c01614310565b6001600160401b03161015611dcc5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016107bd565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611efc918d918c918c91908c90899089906148c7565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611f9357600080fd5b505af1158015611fa7573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b031633146120115760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107bd565b6001600160a01b03811661208d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107bd565b61209681612e67565b50565b6120bd60405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561211657600080fd5b505afa15801561212a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214e9190614282565b8160000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b1580156121b057600080fd5b505afa1580156121c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121e89190614282565b60208201527f0000000000000000000000000000000000000000000000000000000000000000604082015290565b6000806000612224846136de565b9150508060011461229d5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016107bd565b60006122a98582612900565b90506122b481612df1565b925060006122c182612acb565b9050805160141461233a5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016107bd565b60208101519450505050915091565b6123746040518060800160405280600081526020016060815260200160608152602001606081525090565b8151151560008080612385876136de565b909250905060006123978360016143c9565b905084156123af576123aa6001836143e1565b6123b1565b815b6001600160401b038111156123c8576123c861432b565b6040519080825280602002602001820160405280156123f1578160200160208202803683370190505b5060208701819052516001600160401b038111156124115761241161432b565b60405190808252806020026020018201604052801561243a578160200160208202803683370190505b5060408701526020860151516001600160401b0381111561245d5761245d61432b565b604051908082528060200260200182016040528015612486578160200160208202803683370190505b5060608701526000805b838110156127c75760008060006124a78d876136f5565b92509250925060006004600085856040516020016124dc92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615612718576001810154600160e01b900463ffffffff16156125775760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016107bd565b8b60200151518614156125f25760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107bd565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b03909216918890811061264b5761264b6143f8565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b0316918890811061268f5761268f6143f8565b6020026020010181815250508b6040015186815181106126b1576126b16143f8565b60200260200101518c6000018181516126ca91906143c9565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106126fb576126fb6143f8565b6020908102919091010152856127108161440e565b9650506127a4565b8915158b15151415801561272c57508c5184145b1561275c578c604001516001600160401b03168c60000181815161275091906143c9565b905250600199506127a4565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016107bd565b6127ae82886143c9565b96505050505080806127bf9061440e565b915050612490565b506000811161283e5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016107bd565b841515861515146128b75760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107bd565b5050505050505b92915050565b600080806128d285876143e1565b90506128de848261492a565b9150836128eb83836143e1565b6128f5919061493e565b925050935093915050565b606060008061290e856136de565b90925090506000198214156129705760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107bd565b8084106129bf5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016107bd565b6000806129cd8460016143c9565b905060005b86811015612a56576129e4888361374d565b9250600019831415612a385760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107bd565b612a4283836143c9565b915080612a4e8161440e565b9150506129d2565b50612a61878261374d565b9150600019821415612ab55760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107bd565b612ac08782846137bc565b979650505050505050565b6060600082600881518110612ae257612ae26143f8565b0160200151835160f89190911c9150612afc826009614952565b60ff1614612b1a575050604080516020810190915260008152919050565b82600981518110612b2d57612b2d6143f8565b016020015160f81c612bd35760028160ff161015612b5b575050604080516020810190915260008152919050565b600083600a81518110612b7057612b706143f8565b016020015160f81c9050612b85600283614977565b60ff1681141580612ba3575080602014158015612ba3575080601414155b15612bbf57505060408051602081019091526000815292915050565b612bcb84600b836137bc565b949350505050565b6000612be0846008612d98565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612cbd5783600b81518110612c3f57612c3f6143f8565b60209101015160f81c6014141580612c945750612c6a60028551612c6391906143e1565b8590612d98565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612cb057505060408051602081019091526000815292915050565b612bcb84600c60146137bc565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612d5a578360018551612d1691906143e1565b81518110612d2657612d266143f8565b60209101015160f81c608714612d4d57505060408051602081019091526000815292915050565b612bcb84600b60146137bc565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612da78383016020015190565b9392505050565b6000815160001415612dc257506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612dfd83613886565b60c01c90506000612bcb8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612f2b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016107bd565b808335612f3e60408601602087016142f5565b612f4e6060870160408801614310565b604051602001612f8b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612fee5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107bd565b600080612ffa86613892565b9092509050843582148015613029575063ffffffff811661302160408701602088016142f5565b63ffffffff16145b6130c15760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016107bd565b505050505050565b604080516080810182526000808252602082018190529181018290526060810182905290806130f7856136de565b909250905060006131098360016143c9565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156136675760006131cb8b8761374d565b905060006131da8c88846137bc565b905060006131e782612df1565b9050600061320560088085516131fd91906143e1565b8591906137bc565b90508b606001516001600160401b0316600014801561323857508051602082012088148061323857508051602082012087145b801561324d57506000826001600160401b0316115b156132725763ffffffff851660408d01526001600160401b03821660608d0152613644565b60008d8260405160200161328792919061499a565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615613491576000818152600660205260408120600181015481549192916132f9916001600160401b0390811691600160a01b90041661482c565b60018301549091506001600160401b038087169161332091600160401b909104168361482c565b6001600160401b0316111580156133495750806001600160401b0316856001600160401b031611155b6133e15760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016107bd565b808f6000018181516133f3919061489c565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151613437919061489c565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff19169055886134878161440e565b9950505050613642565b60008181526007602052604090206001810154600160801b900463ffffffff166135225760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016107bd565b6001810154815460009161354a916001600160401b0391821691600160a01b9091041661482c565b60018301549091506001600160401b038087169161357191600160401b909104168361482c565b6001600160401b03161115801561359a5750806001600160401b0316856001600160401b031611155b6136325760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016107bd565b8861363c8161440e565b99505050505b505b61364e848a6143c9565b985050505050808061365f9061440e565b9150506131b7565b50600081116128b75760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016107bd565b6000806136ec836000613947565b91509150915091565b600080806137038585612d98565b92506137386137128686613ac3565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506137448585613ada565b90509250925092565b600061375a8260096143c9565b8351101561376b57506000196128be565b6000806137828561377d8660086143c9565b613947565b909250905060001982141561379d57600019925050506128be565b806137a98360096143c9565b6137b391906143c9565b95945050505050565b6060816137d85750604080516020810190915260008152612da7565b60006137e483856143c9565b905083811180156137f6575080855110155b6138425760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016107bd565b604051915082604083010160405282825283850182038460208701018481015b8082101561387b57815183830152602082019150613862565b505050509392505050565b60006128be8282612d98565b60008060006138a0846136de565b915050806001146139195760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016107bd565b60006139258582613b25565b905061393081613cda565b935061393e61371282613ce7565b92505050915091565b60008060006139568585613cf4565b905060ff8116613988576000858581518110613974576139746143f8565b016020015190935060f81c9150613abc9050565b83613994826001614952565b60ff166139a191906143c9565b855110156139b85760001960009250925050613abc565b60008160ff16600214156139fd576139f26139de6139d78760016143c9565b8890612d98565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613ab2565b8160ff1660041415613a2757613a1a6137126139d78760016143c9565b63ffffffff169050613ab2565b8160ff1660081415613ab257613aa6613a446139d78760016143c9565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612da7613ad38360206143c9565b8490612d98565b6000806000613ae98585613d80565b9092509050600019821415613b0457600019925050506128be565b80613b108360256143c9565b613b1a91906143c9565b6137b39060046143c9565b6060600080613b33856136de565b9092509050600019821415613b955760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107bd565b808410613be45760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016107bd565b600080613bf28460016143c9565b905060005b86811015613c7b57613c098883613ada565b9250600019831415613c5d5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107bd565b613c6783836143c9565b915080613c738161440e565b915050613bf7565b50613c868782613ada565b9150600019821415612ab55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107bd565b60208101516000906128be565b60006128be826020612d98565b6000828281518110613d0857613d086143f8565b60209101015160f81c60ff1415613d21575060086128be565b828281518110613d3357613d336143f8565b60209101015160f81c60fe1415613d4c575060046128be565b828281518110613d5e57613d5e6143f8565b60209101015160f81c60fd1415613d77575060026128be565b50600092915050565b600080613d8e8360256143c9565b84511015613da3575060001990506000613abc565b600080613db58661377d8760246143c9565b9097909650945050505050565b600060208284031215613dd457600080fd5b5035919050565b600060808284031215613ded57600080fd5b50919050565b600060608284031215613ded57600080fd5b600080600060a08486031215613e1a57600080fd5b83356001600160401b0380821115613e3157600080fd5b613e3d87838801613ddb565b94506020860135915080821115613e5357600080fd5b50613e6086828701613df3565b9250506137448560408601613df3565b600080828403610100811215613e8557600080fd5b83356001600160401b03811115613e9b57600080fd5b613ea786828701613ddb565b93505060e0601f1982011215613ebc57600080fd5b506020830190509250929050565b80356001600160a01b0381168114613ee157600080fd5b919050565b60008060408385031215613ef957600080fd5b613f0283613eca565b915060208301358015158114613f1757600080fd5b809150509250929050565b80356001600160601b031981168114613ee157600080fd5b600060208284031215613f4c57600080fd5b612da782613f22565b60008060008060c08587031215613f6b57600080fd5b84356001600160401b0380821115613f8257600080fd5b613f8e88838901613ddb565b95506020870135915080821115613fa457600080fd5b50613fb187828801613df3565b935050613fc18660408701613df3565b9150613fcf60a08601613f22565b905092959194509250565b80356001600160401b0381168114613ee157600080fd5b600080600080600060c0868803121561400957600080fd5b61401286613f22565b94506140218760208801613df3565b935060808601356001600160401b038082111561403d57600080fd5b818801915088601f83011261405157600080fd5b81358181111561406057600080fd5b89602082850101111561407257600080fd5b60208301955080945050505061408a60a08701613fda565b90509295509295909350565b6000602082840312156140a857600080fd5b612da782613eca565b634e487b7160e01b600052602160045260246000fd5b60408101600584106140e957634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b80356001600160e01b031981168114613ee157600080fd5b6000808335601e1984360301811261413057600080fd5b83016020810192503590506001600160401b0381111561414f57600080fd5b803603831315613abc57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60a0815260006001600160e01b0319806141a087614101565b1660a08401526141b36020870187614119565b608060c08601526141c96101208601828461415e565b9150506141d96040880188614119565b858303609f190160e08701526141f083828461415e565b925050508161420160608901614101565b16610100850152838103602085015261421a8687614119565b92506060825261422e60608301848361415e565b925050602086013560208201526142486040870187614119565b828403604084015261425b84828461415e565b945050505050612bcb60408301848051825260208082015190830152604090810151910152565b60006020828403121561429457600080fd5b5051919050565b6000808335601e198436030181126142b257600080fd5b8301803591506001600160401b038211156142cc57600080fd5b602001915036819003821315613abc57600080fd5b803563ffffffff81168114613ee157600080fd5b60006020828403121561430757600080fd5b612da7826142e1565b60006020828403121561432257600080fd5b612da782613fda565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561435357600080fd5b604051606081018181106001600160401b038211171561438357634e487b7160e01b600052604160045260246000fd5b60405282358152614396602084016142e1565b60208201526143a760408401613fda565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156143dc576143dc6143b3565b500190565b6000828210156143f3576143f36143b3565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415614422576144226143b3565b5060010190565b604080825283519082018190526000906020906060840190828701845b8281101561446b5781516001600160a01b031684529284019290840190600101614446565b5050508381038285015284518082528583019183019060005b818110156144a057835183529284019291840191600101614484565b5090979650505050505050565b6000602082840312156144bf57600080fd5b81356001600160c01b031981168114612da757600080fd5b6000602082840312156144e957600080fd5b612da782614101565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f82015260006145c66145b9614590602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526146856145b961459061456761465c601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b6005820152905061475b61473260068301614633565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614788576020818501810151868301520161476e565b81811115614797576000828601525b509290920192915050565b6000612da78284614767565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b0380841680614820576148206147f0565b92169190910492915050565b60006001600160401b038381169083168181101561484c5761484c6143b3565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b038083168185168083038211156148be576148be6143b3565b01949350505050565b6bffffffffffffffffffffffff198816815260c0602082015260006148f060c08301888a61415e565b6001600160a01b03969096166040830152506001600160401b039384166060820152918316608083015290911660a0909101529392505050565b600082614939576149396147f0565b500690565b60008261494d5761494d6147f0565b500490565b600060ff821660ff84168060ff0382111561496f5761496f6143b3565b019392505050565b600060ff821660ff841680821015614991576149916143b3565b90039392505050565b6001600160601b0319831681526000612bcb601483018461476756fea264697066735822122004d089b6d7ee7df533a75e96055f0d9c61bafe7e0707287b2a83e34f7a81bbd664736f6c63430008090033",
|
|
865
|
+
"linkReferences": {
|
|
866
|
+
"contracts/bridge/BitcoinTx.sol": {
|
|
867
|
+
"BitcoinTx": [
|
|
868
|
+
{
|
|
869
|
+
"length": 20,
|
|
870
|
+
"start": 2254
|
|
871
|
+
},
|
|
872
|
+
{
|
|
873
|
+
"length": 20,
|
|
874
|
+
"start": 5703
|
|
875
|
+
}
|
|
876
|
+
]
|
|
877
|
+
}
|
|
878
|
+
},
|
|
879
|
+
"deployedLinkReferences": {
|
|
880
|
+
"contracts/bridge/BitcoinTx.sol": {
|
|
881
|
+
"BitcoinTx": [
|
|
882
|
+
{
|
|
883
|
+
"length": 20,
|
|
884
|
+
"start": 1503
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
"length": 20,
|
|
888
|
+
"start": 4952
|
|
889
|
+
}
|
|
890
|
+
]
|
|
891
|
+
}
|
|
892
|
+
}
|
|
867
893
|
}
|