@keep-network/tbtc-v2 0.1.1-dev.20 → 0.1.1-dev.23

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.
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/c6d4a581e072c3a6ede3e105233cc390.json"
3
+ "buildInfo": "../../build-info/7c0ac1415929deeaa3e0f2f0bf2db7d9.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c6d4a581e072c3a6ede3e105233cc390.json"
3
+ "buildInfo": "../../../build-info/7c0ac1415929deeaa3e0f2f0bf2db7d9.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c6d4a581e072c3a6ede3e105233cc390.json"
3
+ "buildInfo": "../../../build-info/7c0ac1415929deeaa3e0f2f0bf2db7d9.json"
4
4
  }
@@ -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
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e85344172a3210df28d37cad17ad422292fd6dcbcaeb8aa6d9b37baa7c9d972864736f6c63430008090033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e85344172a3210df28d37cad17ad422292fd6dcbcaeb8aa6d9b37baa7c9d972864736f6c63430008090033",
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
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c6d4a581e072c3a6ede3e105233cc390.json"
3
+ "buildInfo": "../../../build-info/7c0ac1415929deeaa3e0f2f0bf2db7d9.json"
4
4
  }
@@ -222,6 +222,19 @@
222
222
  "stateMutability": "view",
223
223
  "type": "function"
224
224
  },
225
+ {
226
+ "inputs": [],
227
+ "name": "depositDustThreshold",
228
+ "outputs": [
229
+ {
230
+ "internalType": "uint64",
231
+ "name": "",
232
+ "type": "uint64"
233
+ }
234
+ ],
235
+ "stateMutability": "view",
236
+ "type": "function"
237
+ },
225
238
  {
226
239
  "inputs": [],
227
240
  "name": "depositTreasuryFeeDivisor",
@@ -860,8 +873,34 @@
860
873
  "type": "function"
861
874
  }
862
875
  ],
863
- "bytecode": "0x6101006040523480156200001257600080fd5b50604051620056743803806200567483398101604081905262000035916200021d565b6200004033620001b0565b6001600160a01b0384166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660a0528316620000fa5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160a01b0380841660c0528216620001585760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b6001600160a01b039190911660e052608052505060008054600160a01b600160e01b031916607d60a41b1790557903e800000000000007d000000000000f424000000000000003e86001556202a3006002556200026f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021857600080fd5b919050565b600080600080608085870312156200023457600080fd5b6200023f8562000200565b93506200024f6020860162000200565b92506200025f6040860162000200565b6060959095015193969295505050565b60805160a05160c05160e051615385620002ef6000396000818161035701528181610a4801526116330152600081816104d801528181613b040152613b9901526000818161039e015281816109b501528181610a770152818161159a0152818161166b0152611e080152600081816102f50152613dfb01526153856000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80638da5cb5b116100e3578063cb7f3a091161008c578063e65e19d511610066578063e65e19d51461056d578063e95eb7a8146105ae578063f2fde38b146105c857600080fd5b8063cb7f3a0914610514578063d6eccdf014610527578063e53c0b551461053a57600080fd5b8063b34b3216116100bd578063b34b3216146104c0578063b59589d1146104d3578063bdf9fca9146104fa57600080fd5b80638da5cb5b146103e0578063a588f059146103f1578063b02c43d01461040b57600080fd5b80635c0b481211610145578063715018a61161011f578063715018a61461039157806376cdb03b1461039957806383a43428146103c057600080fd5b80635c0b48121461032c57806360d712fc1461033f57806361d027b31461035257600080fd5b80631fff4e70116101765780631fff4e70146102d95780632bb818c2146102f057806359a9d90a1461031757600080fd5b806303d952f71461019d578063079bf52c146102485780630b6ba19d1461027a575b600080fd5b6101fc6101ab3660046147aa565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b60005461026290600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161023f565b6101fc6102883660046147aa565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e260025481565b60405190815260200161023f565b6102e27f000000000000000000000000000000000000000000000000000000000000000081565b61032a6103253660046147ed565b6105db565b005b61032a61033a366004614858565b610ae2565b61032a61034d3660046148ce565b61117e565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b61032a611237565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6102e26103ce366004614922565b60056020526000908152604090205481565b6000546001600160a01b0316610379565b60015461026290600160c01b90046001600160401b031681565b6104706104193660046147aa565b600460205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161023f565b61032a6104ce36600461493d565b61129d565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60015461026290600160401b90046001600160401b031681565b600154610262906001600160401b031681565b61032a6105353660046149d9565b6116d2565b61055d610548366004614a7e565b60036020526000908152604090205460ff1681565b604051901515815260200161023f565b6105a061057b366004614922565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161023f929190614aaf565b60015461026290600160801b90046001600160401b031681565b61032a6105d6366004614a7e565b611e78565b60006105e78484611f5a565b90506000806106366105fc6040880188614ae9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506120d492505050565b60408051606081018252600080825260208083018290528284018290526001600160601b031986168252600590529190912054929450909250908015610750578086356106896040890160208a01614b43565b61069960608a0160408b01614b5e565b6040516020016106d69392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461073e5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b61074d36879003870187614b8f565b91505b600061079e61076260208b018b614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612207915050565b9050600080826040015151866001600160401b031684600001516107c29190614c17565b6107cc9190614c44565b6001549091506001600160401b031681111561082a5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f206869676800000000006044820152606401610735565b60005b8360400151518110156108ea57818460600151828151811061085157610851614c58565b60200260200101518560400151838151811061086f5761086f614c58565b60200260200101516108819190614c17565b61088b9190614c17565b846040015182815181106108a1576108a1614c58565b602002602001018181525050836060015181815181106108c3576108c3614c58565b6020026020010151836108d69190614c6e565b9250806108e281614c86565b91505061082d565b5060408051602081018a90526000918101919091526001600160c01b031960c088901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198b1660008181526005845284902091909155835282018a90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602083015160408085015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a926109e892600401614ca1565b600060405180830381600087803b158015610a0257600080fd5b505af1158015610a16573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018690527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610abd57600080fd5b505af1158015610ad1573d6000803e3d6000fd5b505050505050505050505050505050565b6000610af460e0830160c08401614a7e565b6001600160a01b03161480610b36575060036000610b1860e0840160c08501614a7e565b6001600160a01b0316815260208101919091526040016000205460ff165b610b825760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f7420747275737465640000000000000000000000006044820152606401610735565b6000610b946040830160208401614a7e565b610ba46060840160408501614d25565b610bb46080850160608601614922565b610bc460a0860160808701614922565b610bd460c0870160a08801614d4f565b604051602001610be8959493929190614d79565b60408051601f1981840301815291905290506000610c5c610c0c6020850185614b43565b63ffffffff16610c1f6040870187614ae9565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506127819050565b90506000610c698261294c565b9050805160141415610cef57610c7e83612bf2565b6001600160601b031916610c93826000612c19565b6001600160601b03191614610cea5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d62797465207363726970742068617368000000000000006044820152606401610735565b610de7565b805160201415610d9f57600283604051610d099190615029565b602060405180830381855afa158015610d26573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d499190615035565b610d5282612c2f565b14610cea5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d62797465207363726970742068617368000000000000006044820152606401610735565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e67746800000000000000006044820152606401610735565b6000610e4c610df96020880188614d4f565b610e066020890189614ae9565b610e1360408b018b614ae9565b610e2360808d0160608e01614d4f565b604051602001610e389695949392919061504e565b604051602081830303815290604052612c4b565b9050600060048183610e6160208a018a614b43565b604051602001610e8892919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610f0c5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c656400000000000000006044820152606401610735565b6000610f1785612c72565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610f606040880160208901614a7e565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610faf60e0880160c08901614a7e565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055600054600160a01b90046001600160401b0316610ffc576000611019565b60005461101990600160a01b90046001600160401b031682615090565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef058361108a60208a018a614b43565b61109a60408b0160208c01614a7e565b846110ab60608d0160408e01614d25565b6110bb60808e0160608f01614922565b8d60800160208101906110ce9190614922565b8e60a00160208101906110e19190614d4f565b8f60c00160208101906110f49190614a7e565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b031633146111d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146112915760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b61129b6000612ce8565b565b60006112a98585611f5a565b90506112f96112bb6020870187614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612d459050565b6001600160601b0319821660009081526008602052604090205460ff16600181600481111561132a5761132a614a99565b14806113475750600281600481111561134557611345614a99565b145b6113b95760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e674675647320737461746500000000000000000000000000000000000000006064820152608401610735565b60006114076113cb6040890189614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612f4a915050565b60608101519091506001600160401b03161561149a5782816040015182606001516040516020016114659392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b03198716600090815260059093529120556114b5565b6001600160601b031984166000908152600560205260408120555b80516001600160601b03198516600090815260086020526040902080546001906114ee90849061010090046001600160401b03166150b6565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516115589291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b1580156116b157600080fd5b505af11580156116c5573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561170257611702614a99565b1461174f5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e2041637469766520737461746500006044820152606401610735565b6001600160601b03198516600090815260056020526040902054806117dc5760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401610735565b8085356117ef6040880160208901614b43565b6117ff6060890160408a01614b5e565b60405160200161183c9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461189f5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610735565b60006118d1600060c01b86866040516020016118bd939291906150de565b60405160208183030381529060405261294c565b9050600081511161194a5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e6461726420747970650000000000000000000000000000000000006064820152608401610735565b80805190602001208760405160200161197391906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156119fd5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b480000000000000000006064820152608401610735565b6001546001600160401b03600160401b90910481169084161015611a635760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c00000000006044820152606401610735565b6000878686604051602001611a7a93929190615102565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615611b4b5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a401610735565b600154600090600160801b90046001600160401b0316611b6c576000611b89565b600154611b8990600160801b90046001600160401b031686615090565b600154909150600160c01b90046001600160401b0316611ba982876150b6565b6001600160601b03198b1660009081526008602052604090208054600190611be090849061010090046001600160401b0316615126565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600860205260409081902054919091049091169150611c369060608c01908c01614b5e565b6001600160401b03161015611c8d5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e6473000000000000006044820152606401610735565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611dbd918d918c918c91908c9089908990615151565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611ed25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6001600160a01b038116611f4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610735565b611f5781612ce8565b50565b6000611fa6611f6c6020850185614ae9565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061355f92505050565b611ff25760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f76696465640000006044820152606401610735565b61203c6120026040850185614ae9565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061360f92505050565b6120885760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f766964656400006044820152606401610735565b6120c26120986020850185614d4f565b6120a56020860186614ae9565b6120b26040880188614ae9565b610e2360808a0160608b01614d4f565b90506120ce81836136b2565b92915050565b60008060006120e28461380b565b9150508060011461215b5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f75747075740000000000000000000000000000000000000000006064820152608401610735565b60006121678582612781565b905061217281612c72565b9250600061217f8261294c565b905080516014146121f85760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f76652032302062797465730000000000000000000000000000000000000000006064820152608401610735565b60208101519450505050915091565b6122326040518060800160405280600081526020016060815260200160608152602001606081525090565b81511515600080806122438761380b565b90925090506000612255836001614c6e565b9050841561226d57612268600183614c17565b61226f565b815b6001600160401b0381111561228657612286614b79565b6040519080825280602002602001820160405280156122af578160200160208202803683370190505b5060208701819052516001600160401b038111156122cf576122cf614b79565b6040519080825280602002602001820160405280156122f8578160200160208202803683370190505b5060408701526020860151516001600160401b0381111561231b5761231b614b79565b604051908082528060200260200182016040528015612344578160200160208202803683370190505b5060608701526000805b838110156126855760008060006123658d87613822565b925092509250600060046000858560405160200161239a92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff16156125d6576001810154600160e01b900463ffffffff16156124355760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c726561647920737765707400000000000000000000006044820152606401610735565b8b60200151518614156124b05760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e707574730000000000006064820152608401610735565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b03909216918890811061250957612509614c58565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b0316918890811061254d5761254d614c58565b6020026020010181815250508b60400151868151811061256f5761256f614c58565b60200260200101518c6000018181516125889190614c6e565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106125b9576125b9614c58565b6020908102919091010152856125ce81614c86565b965050612662565b8915158b1515141580156125ea57508c5184145b1561261a578c604001516001600160401b03168c60000181815161260e9190614c6e565b90525060019950612662565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e707574207479706500000000000000000000000000006044820152606401610735565b61266c8288614c6e565b965050505050808061267d90614c86565b91505061234e565b50600081116126fc5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f736974000000000000000000000000006064820152608401610735565b841515861515146127755760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e707574730000000000006064820152608401610735565b50505050505092915050565b606060008061278f8561380b565b90925090506000198214156127f15760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b6064820152608401610735565b8084106128405760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e0000000000000000000000000000006044820152606401610735565b60008061284e846001614c6e565b905060005b868110156128d757612865888361387a565b92506000198314156128b95760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610735565b6128c38383614c6e565b9150806128cf81614c86565b915050612853565b506128e2878261387a565b91506000198214156129365760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610735565b6129418782846138e9565b979650505050505050565b606060008260088151811061296357612963614c58565b0160200151835160f89190911c915061297d8260096151c8565b60ff161461299b575050604080516020810190915260008152919050565b826009815181106129ae576129ae614c58565b016020015160f81c612a545760028160ff1610156129dc575050604080516020810190915260008152919050565b600083600a815181106129f1576129f1614c58565b016020015160f81c9050612a066002836151ed565b60ff1681141580612a24575080602014158015612a24575080601414155b15612a4057505060408051602081019091526000815292915050565b612a4c84600b836138e9565b949350505050565b6000612a61846008612c19565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612b3e5783600b81518110612ac057612ac0614c58565b60209101015160f81c6014141580612b155750612aeb60028551612ae49190614c17565b8590612c19565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612b3157505060408051602081019091526000815292915050565b612a4c84600c60146138e9565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612bdb578360018551612b979190614c17565b81518110612ba757612ba7614c58565b60209101015160f81c608714612bce57505060408051602081019091526000815292915050565b612a4c84600b60146138e9565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612c288383016020015190565b9392505050565b6000815160001415612c4357506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612c7e836139b3565b60c01c90506000612a4c8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612dac5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c65740000006044820152606401610735565b808335612dbf6040860160208701614b43565b612dcf6060870160408801614b5e565b604051602001612e0c9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612e6f5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610735565b600080612e7b866139bf565b9092509050843582148015612eaa575063ffffffff8116612ea26040870160208801614b43565b63ffffffff16145b612f425760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a401610735565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612f788561380b565b90925090506000612f8a836001614c6e565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156134e857600061304c8b8761387a565b9050600061305b8c88846138e9565b9050600061306882612c72565b90506000613086600880855161307e9190614c17565b8591906138e9565b90508b606001516001600160401b031660001480156130b95750805160208201208814806130b957508051602082012087145b80156130ce57506000826001600160401b0316115b156130f35763ffffffff851660408d01526001600160401b03821660608d01526134c5565b60008d82604051602001613108929190615210565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156133125760008181526006602052604081206001810154815491929161317a916001600160401b0390811691600160a01b9004166150b6565b60018301549091506001600160401b03808716916131a191600160401b90910416836150b6565b6001600160401b0316111580156131ca5750806001600160401b0316856001600160401b031611155b6132625760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a401610735565b808f6000018181516132749190615126565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f6020018181516132b89190615126565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff191690558861330881614c86565b99505050506134c3565b60008181526007602052604090206001810154600160801b900463ffffffff166133a35760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e000000000000000000000000000000000000000000000000000000006064820152608401610735565b600181015481546000916133cb916001600160401b0391821691600160a01b909104166150b6565b60018301549091506001600160401b03808716916133f291600160401b90910416836150b6565b6001600160401b03161115801561341b5750806001600160401b0316856001600160401b031611155b6134b35760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a401610735565b886134bd81614c86565b99505050505b505b6134cf848a614c6e565b98505050505080806134e090614c86565b915050613038565b50600081116127755760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e00000000006064820152608401610735565b600080600061356d8461380b565b9092509050801580613580575060001982145b1561358f575060009392505050565b600061359c836001614c6e565b905060005b8281101561360257855182106135bd5750600095945050505050565b60006135c98784613a74565b90506000198114156135e2575060009695505050505050565b6135ec8184614c6e565b92505080806135fa90614c86565b9150506135a1565b5093519093149392505050565b600080600061361d8461380b565b9092509050801580613630575060001982145b1561363f575060009392505050565b600061364c836001614c6e565b905060005b82811015613602578551821061366d5750600095945050505050565b6000613679878461387a565b9050600019811415613692575060009695505050505050565b61369c8184614c6e565b92505080806136aa90614c86565b915050613651565b61374b6136ff6136c56040840184614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613abf92505050565b6137098380614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613acc565b6137bd5760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e642074782068617368000000006064820152608401610735565b6138076137cd6040830183614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613aff92505050565b5050565b600080613819836000613e95565b91509150915091565b600080806138308585612c19565b925061386561383f8686614011565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506138718585613a74565b90509250925092565b6000613887826009614c6e565b8351101561389857506000196120ce565b6000806138af856138aa866008614c6e565b613e95565b90925090506000198214156138ca57600019925050506120ce565b806138d6836009614c6e565b6138e09190614c6e565b95945050505050565b6060816139055750604080516020810190915260008152612c28565b60006139118385614c6e565b90508381118015613923575080855110155b61396f5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610735565b604051915082604083010160405282825283850182038460208701018481015b808210156139a85781518383015260208201915061398f565b505050509392505050565b60006120ce8282612c19565b60008060006139cd8461380b565b91505080600114613a465760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e70757400000000000000000000000000000000006064820152608401610735565b6000613a528582614028565b9050613a5d816141dd565b9350613a6b61383f826141ea565b92505050915091565b6000806000613a8385856141f7565b9092509050600019821415613a9e57600019925050506120ce565b80613aaa836025614c6e565b613ab49190614c6e565b6138e0906004614c6e565b60448101516000906120ce565b60008385148015613adb575081155b8015613ae657508251155b15613af357506001612a4c565b6138e085848685614239565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b158015613b5b57600080fd5b505afa158015613b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b939190615035565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015613bf057600080fd5b505afa158015613c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c289190615035565b90506000613c3d613c38866142e1565b614376565b905082811415613c4f57829350613ccd565b81811415613c5f57819350613ccd565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c74790000000000000000000000000000000000000000000000000000006064820152608401610735565b6000613cd88661439e565b9050600019811415613d525760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e00000000000000000000000000000000000000000000000000000000006064820152608401610735565b600119811415613da45760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e00000000000000000000006044820152606401610735565b600219811415613df65760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e2061206865616465720000006044820152606401610735565b613e207f00000000000000000000000000000000000000000000000000000000000000008661522c565b811015612f425760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e000000000000000000000000006064820152608401610735565b6000806000613ea485856145a5565b905060ff8116613ed6576000858581518110613ec257613ec2614c58565b016020015190935060f81c915061400a9050565b83613ee28260016151c8565b60ff16613eef9190614c6e565b85511015613f06576000196000925092505061400a565b60008160ff1660021415613f4b57613f40613f2c613f25876001614c6e565b8890612c19565b62ffff0060e882901c1660f89190911c1790565b61ffff169050614000565b8160ff1660041415613f7557613f6861383f613f25876001614c6e565b63ffffffff169050614000565b8160ff166008141561400057613ff4613f92613f25876001614c6e565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612c28614021836020614c6e565b8490612c19565b60606000806140368561380b565b90925090506000198214156140985760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b6064820152608401610735565b8084106140e75760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e000000000000000000000000000000006044820152606401610735565b6000806140f5846001614c6e565b905060005b8681101561417e5761410c8883613a74565b92506000198314156141605760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610735565b61416a8383614c6e565b91508061417681614c86565b9150506140fa565b506141898782613a74565b91506000198214156129365760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610735565b60208101516000906120ce565b60006120ce826020612c19565b600080614205836025614c6e565b8451101561421a57506000199050600061400a565b60008061422c866138aa876024614c6e565b9097909650945050505050565b600060208451614249919061524b565b1561425657506000612a4c565b835161426457506000612a4c565b818560005b86518110156142d45761427d60028461524b565b600114156142a25761429b6142958883016020015190565b83614631565b91506142bb565b6142b8826142b38984016020015190565b614631565b91505b60019290921c916142cd602082614c6e565b9050614269565b5090931495945050505050565b6000806142ef836048612c19565b60e81c9050600083604b8151811061430957614309614c58565b016020015160f81c9050600061433d83600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006143516003846151ed565b60ff16905061436281610100615343565b61436c908361522c565b9695505050505050565b60006120ce7bffff00000000000000000000000000000000000000000000000000008361463d565b6000605082516143ae919061524b565b156143bc5750600019919050565b506040805160808101909152605081526000908190815b845181101561459d576143e7858383614649565b8015614407576143f782846146e8565b6144075750600119949350505050565b6000614412836142e1565b905061441d83612c4b565b9350806145618560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115614574575060021995945050505050565b61458761458082614376565b8690614711565b94506145969050605082614c6e565b90506143d3565b505050919050565b60008282815181106145b9576145b9614c58565b60209101015160f81c60ff14156145d2575060086120ce565b8282815181106145e4576145e4614c58565b60209101015160f81c60fe14156145fd575060046120ce565b82828151811061460f5761460f614c58565b60209101015160f81c60fd1415614628575060026120ce565b50600092915050565b6000612c28838361476f565b6000612c288284614c44565b815160006146578284614c6e565b90508281118015614669575080855110155b6146b55760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610735565b826020860101602085018382015b808310156146de5782518252602092830192909101906146c3565b5050505050505050565b6000806146f48461479d565b90508281146147075760009150506120ce565b5060019392505050565b600061471d8284614c6e565b9050828110156120ce5760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e000000000000006044820152606401610735565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906120ce565b6000602082840312156147bc57600080fd5b5035919050565b6000608082840312156147d557600080fd5b50919050565b6000606082840312156147d557600080fd5b600080600060a0848603121561480257600080fd5b83356001600160401b038082111561481957600080fd5b614825878388016147c3565b9450602086013591508082111561483b57600080fd5b50614848868287016147db565b92505061387185604086016147db565b60008082840361010081121561486d57600080fd5b83356001600160401b0381111561488357600080fd5b61488f868287016147c3565b93505060e0601f19820112156148a457600080fd5b506020830190509250929050565b80356001600160a01b03811681146148c957600080fd5b919050565b600080604083850312156148e157600080fd5b6148ea836148b2565b9150602083013580151581146148ff57600080fd5b809150509250929050565b80356001600160601b0319811681146148c957600080fd5b60006020828403121561493457600080fd5b612c288261490a565b60008060008060c0858703121561495357600080fd5b84356001600160401b038082111561496a57600080fd5b614976888389016147c3565b9550602087013591508082111561498c57600080fd5b50614999878288016147db565b9350506149a986604087016147db565b91506149b760a0860161490a565b905092959194509250565b80356001600160401b03811681146148c957600080fd5b600080600080600060c086880312156149f157600080fd5b6149fa8661490a565b9450614a0987602088016147db565b935060808601356001600160401b0380821115614a2557600080fd5b818801915088601f830112614a3957600080fd5b813581811115614a4857600080fd5b896020828501011115614a5a57600080fd5b602083019550809450505050614a7260a087016149c2565b90509295509295909350565b600060208284031215614a9057600080fd5b612c28826148b2565b634e487b7160e01b600052602160045260246000fd5b6040810160058410614ad157634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e19843603018112614b0057600080fd5b8301803591506001600160401b03821115614b1a57600080fd5b60200191503681900382131561400a57600080fd5b803563ffffffff811681146148c957600080fd5b600060208284031215614b5557600080fd5b612c2882614b2f565b600060208284031215614b7057600080fd5b612c28826149c2565b634e487b7160e01b600052604160045260246000fd5b600060608284031215614ba157600080fd5b604051606081018181106001600160401b0382111715614bd157634e487b7160e01b600052604160045260246000fd5b60405282358152614be460208401614b2f565b6020820152614bf5604084016149c2565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015614c2957614c29614c01565b500390565b634e487b7160e01b600052601260045260246000fd5b600082614c5357614c53614c2e565b500490565b634e487b7160e01b600052603260045260246000fd5b60008219821115614c8157614c81614c01565b500190565b6000600019821415614c9a57614c9a614c01565b5060010190565b604080825283519082018190526000906020906060840190828701845b82811015614ce35781516001600160a01b031684529284019290840190600101614cbe565b5050508381038285015284518082528583019183019060005b81811015614d1857835183529284019291840191600101614cfc565b5090979650505050505050565b600060208284031215614d3757600080fd5b81356001600160c01b031981168114612c2857600080fd5b600060208284031215614d6157600080fd5b81356001600160e01b031981168114612c2857600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614e4d614e40614e17602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614f0c614e40614e17614dee614ee3601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614fe2614fb960068301614eba565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b8181101561500f5760208185018101518683015201614ff5565b8181111561501e576000828601525b509290920192915050565b6000612c288284614fee565b60006020828403121561504757600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60006001600160401b03808416806150aa576150aa614c2e565b92169190910492915050565b60006001600160401b03838116908316818110156150d6576150d6614c01565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b0380831681851680830382111561514857615148614c01565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b600060ff821660ff84168060ff038211156151e5576151e5614c01565b019392505050565b600060ff821660ff84168082101561520757615207614c01565b90039392505050565b6001600160601b0319831681526000612a4c6014830184614fee565b600081600019048311821515161561524657615246614c01565b500290565b60008261525a5761525a614c2e565b500690565b600181815b8085111561529a57816000190482111561528057615280614c01565b8085161561528d57918102915b93841c9390800290615264565b509250929050565b6000826152b1575060016120ce565b816152be575060006120ce565b81600181146152d457600281146152de576152fa565b60019150506120ce565b60ff8411156152ef576152ef614c01565b50506001821b6120ce565b5060208310610133831016604e8410600b841016171561531d575081810a6120ce565b615327838361525f565b806000190482111561533b5761533b614c01565b029392505050565b6000612c2883836152a256fea2646970667358221220476da63bfc0ddc4259b48a1e10addbb3bb1a4f6c59f1c377c1cc273067640ee864736f6c63430008090033",
864
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101985760003560e01c80638da5cb5b116100e3578063cb7f3a091161008c578063e65e19d511610066578063e65e19d51461056d578063e95eb7a8146105ae578063f2fde38b146105c857600080fd5b8063cb7f3a0914610514578063d6eccdf014610527578063e53c0b551461053a57600080fd5b8063b34b3216116100bd578063b34b3216146104c0578063b59589d1146104d3578063bdf9fca9146104fa57600080fd5b80638da5cb5b146103e0578063a588f059146103f1578063b02c43d01461040b57600080fd5b80635c0b481211610145578063715018a61161011f578063715018a61461039157806376cdb03b1461039957806383a43428146103c057600080fd5b80635c0b48121461032c57806360d712fc1461033f57806361d027b31461035257600080fd5b80631fff4e70116101765780631fff4e70146102d95780632bb818c2146102f057806359a9d90a1461031757600080fd5b806303d952f71461019d578063079bf52c146102485780630b6ba19d1461027a575b600080fd5b6101fc6101ab3660046147aa565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b60005461026290600160a01b90046001600160401b031681565b6040516001600160401b03909116815260200161023f565b6101fc6102883660046147aa565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e260025481565b60405190815260200161023f565b6102e27f000000000000000000000000000000000000000000000000000000000000000081565b61032a6103253660046147ed565b6105db565b005b61032a61033a366004614858565b610ae2565b61032a61034d3660046148ce565b61117e565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161023f565b61032a611237565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b6102e26103ce366004614922565b60056020526000908152604090205481565b6000546001600160a01b0316610379565b60015461026290600160c01b90046001600160401b031681565b6104706104193660046147aa565b600460205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161023f565b61032a6104ce36600461493d565b61129d565b6103797f000000000000000000000000000000000000000000000000000000000000000081565b60015461026290600160401b90046001600160401b031681565b600154610262906001600160401b031681565b61032a6105353660046149d9565b6116d2565b61055d610548366004614a7e565b60036020526000908152604090205460ff1681565b604051901515815260200161023f565b6105a061057b366004614922565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161023f929190614aaf565b60015461026290600160801b90046001600160401b031681565b61032a6105d6366004614a7e565b611e78565b60006105e78484611f5a565b90506000806106366105fc6040880188614ae9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506120d492505050565b60408051606081018252600080825260208083018290528284018290526001600160601b031986168252600590529190912054929450909250908015610750578086356106896040890160208a01614b43565b61069960608a0160408b01614b5e565b6040516020016106d69392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461073e5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b61074d36879003870187614b8f565b91505b600061079e61076260208b018b614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250612207915050565b9050600080826040015151866001600160401b031684600001516107c29190614c17565b6107cc9190614c44565b6001549091506001600160401b031681111561082a5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f206869676800000000006044820152606401610735565b60005b8360400151518110156108ea57818460600151828151811061085157610851614c58565b60200260200101518560400151838151811061086f5761086f614c58565b60200260200101516108819190614c17565b61088b9190614c17565b846040015182815181106108a1576108a1614c58565b602002602001018181525050836060015181815181106108c3576108c3614c58565b6020026020010151836108d69190614c6e565b9250806108e281614c86565b91505061082d565b5060408051602081018a90526000918101919091526001600160c01b031960c088901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198b1660008181526005845284902091909155835282018a90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602083015160408085015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a926109e892600401614ca1565b600060405180830381600087803b158015610a0257600080fd5b505af1158015610a16573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018690527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610abd57600080fd5b505af1158015610ad1573d6000803e3d6000fd5b505050505050505050505050505050565b6000610af460e0830160c08401614a7e565b6001600160a01b03161480610b36575060036000610b1860e0840160c08501614a7e565b6001600160a01b0316815260208101919091526040016000205460ff165b610b825760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f7420747275737465640000000000000000000000006044820152606401610735565b6000610b946040830160208401614a7e565b610ba46060840160408501614d25565b610bb46080850160608601614922565b610bc460a0860160808701614922565b610bd460c0870160a08801614d4f565b604051602001610be8959493929190614d79565b60408051601f1981840301815291905290506000610c5c610c0c6020850185614b43565b63ffffffff16610c1f6040870187614ae9565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506127819050565b90506000610c698261294c565b9050805160141415610cef57610c7e83612bf2565b6001600160601b031916610c93826000612c19565b6001600160601b03191614610cea5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d62797465207363726970742068617368000000000000006044820152606401610735565b610de7565b805160201415610d9f57600283604051610d099190615029565b602060405180830381855afa158015610d26573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610d499190615035565b610d5282612c2f565b14610cea5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d62797465207363726970742068617368000000000000006044820152606401610735565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e67746800000000000000006044820152606401610735565b6000610e4c610df96020880188614d4f565b610e066020890189614ae9565b610e1360408b018b614ae9565b610e2360808d0160608e01614d4f565b604051602001610e389695949392919061504e565b604051602081830303815290604052612c4b565b9050600060048183610e6160208a018a614b43565b604051602001610e8892919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610f0c5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c656400000000000000006044820152606401610735565b6000610f1785612c72565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610f606040880160208901614a7e565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610faf60e0880160c08901614a7e565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055600054600160a01b90046001600160401b0316610ffc576000611019565b60005461101990600160a01b90046001600160401b031682615090565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef058361108a60208a018a614b43565b61109a60408b0160208c01614a7e565b846110ab60608d0160408e01614d25565b6110bb60808e0160608f01614922565b8d60800160208101906110ce9190614922565b8e60a00160208101906110e19190614d4f565b8f60c00160208101906110f49190614a7e565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b031633146111d85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146112915760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b61129b6000612ce8565b565b60006112a98585611f5a565b90506112f96112bb6020870187614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612d459050565b6001600160601b0319821660009081526008602052604090205460ff16600181600481111561132a5761132a614a99565b14806113475750600281600481111561134557611345614a99565b145b6113b95760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e674675647320737461746500000000000000000000000000000000000000006064820152608401610735565b60006114076113cb6040890189614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612f4a915050565b60608101519091506001600160401b03161561149a5782816040015182606001516040516020016114659392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b03198716600090815260059093529120556114b5565b6001600160601b031984166000908152600560205260408120555b80516001600160601b03198516600090815260086020526040902080546001906114ee90849061010090046001600160401b03166150b6565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516115589291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b1580156115e657600080fd5b505af11580156115fa573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b1580156116b157600080fd5b505af11580156116c5573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561170257611702614a99565b1461174f5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e2041637469766520737461746500006044820152606401610735565b6001600160601b03198516600090815260056020526040902054806117dc5760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401610735565b8085356117ef6040880160208901614b43565b6117ff6060890160408a01614b5e565b60405160200161183c9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b604051602081830303815290604052805190602001201461189f5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610735565b60006118d1600060c01b86866040516020016118bd939291906150de565b60405160208183030381529060405261294c565b9050600081511161194a5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e6461726420747970650000000000000000000000000000000000006064820152608401610735565b80805190602001208760405160200161197391906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156119fd5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b480000000000000000006064820152608401610735565b6001546001600160401b03600160401b90910481169084161015611a635760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c00000000006044820152606401610735565b6000878686604051602001611a7a93929190615102565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615611b4b5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a401610735565b600154600090600160801b90046001600160401b0316611b6c576000611b89565b600154611b8990600160801b90046001600160401b031686615090565b600154909150600160c01b90046001600160401b0316611ba982876150b6565b6001600160601b03198b1660009081526008602052604090208054600190611be090849061010090046001600160401b0316615126565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600860205260409081902054919091049091169150611c369060608c01908c01614b5e565b6001600160401b03161015611c8d5760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e6473000000000000006044820152606401610735565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611dbd918d918c918c91908c9089908990615151565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611e5457600080fd5b505af1158015611e68573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611ed25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610735565b6001600160a01b038116611f4e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610735565b611f5781612ce8565b50565b6000611fa6611f6c6020850185614ae9565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061355f92505050565b611ff25760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f76696465640000006044820152606401610735565b61203c6120026040850185614ae9565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061360f92505050565b6120885760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f766964656400006044820152606401610735565b6120c26120986020850185614d4f565b6120a56020860186614ae9565b6120b26040880188614ae9565b610e2360808a0160608b01614d4f565b90506120ce81836136b2565b92915050565b60008060006120e28461380b565b9150508060011461215b5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f75747075740000000000000000000000000000000000000000006064820152608401610735565b60006121678582612781565b905061217281612c72565b9250600061217f8261294c565b905080516014146121f85760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f76652032302062797465730000000000000000000000000000000000000000006064820152608401610735565b60208101519450505050915091565b6122326040518060800160405280600081526020016060815260200160608152602001606081525090565b81511515600080806122438761380b565b90925090506000612255836001614c6e565b9050841561226d57612268600183614c17565b61226f565b815b6001600160401b0381111561228657612286614b79565b6040519080825280602002602001820160405280156122af578160200160208202803683370190505b5060208701819052516001600160401b038111156122cf576122cf614b79565b6040519080825280602002602001820160405280156122f8578160200160208202803683370190505b5060408701526020860151516001600160401b0381111561231b5761231b614b79565b604051908082528060200260200182016040528015612344578160200160208202803683370190505b5060608701526000805b838110156126855760008060006123658d87613822565b925092509250600060046000858560405160200161239a92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff16156125d6576001810154600160e01b900463ffffffff16156124355760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c726561647920737765707400000000000000000000006044820152606401610735565b8b60200151518614156124b05760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e707574730000000000006064820152608401610735565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b03909216918890811061250957612509614c58565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b0316918890811061254d5761254d614c58565b6020026020010181815250508b60400151868151811061256f5761256f614c58565b60200260200101518c6000018181516125889190614c6e565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106125b9576125b9614c58565b6020908102919091010152856125ce81614c86565b965050612662565b8915158b1515141580156125ea57508c5184145b1561261a578c604001516001600160401b03168c60000181815161260e9190614c6e565b90525060019950612662565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e707574207479706500000000000000000000000000006044820152606401610735565b61266c8288614c6e565b965050505050808061267d90614c86565b91505061234e565b50600081116126fc5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f736974000000000000000000000000006064820152608401610735565b841515861515146127755760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e707574730000000000006064820152608401610735565b50505050505092915050565b606060008061278f8561380b565b90925090506000198214156127f15760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b6064820152608401610735565b8084106128405760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e0000000000000000000000000000006044820152606401610735565b60008061284e846001614c6e565b905060005b868110156128d757612865888361387a565b92506000198314156128b95760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610735565b6128c38383614c6e565b9150806128cf81614c86565b915050612853565b506128e2878261387a565b91506000198214156129365760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610735565b6129418782846138e9565b979650505050505050565b606060008260088151811061296357612963614c58565b0160200151835160f89190911c915061297d8260096151c8565b60ff161461299b575050604080516020810190915260008152919050565b826009815181106129ae576129ae614c58565b016020015160f81c612a545760028160ff1610156129dc575050604080516020810190915260008152919050565b600083600a815181106129f1576129f1614c58565b016020015160f81c9050612a066002836151ed565b60ff1681141580612a24575080602014158015612a24575080601414155b15612a4057505060408051602081019091526000815292915050565b612a4c84600b836138e9565b949350505050565b6000612a61846008612c19565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612b3e5783600b81518110612ac057612ac0614c58565b60209101015160f81c6014141580612b155750612aeb60028551612ae49190614c17565b8590612c19565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612b3157505060408051602081019091526000815292915050565b612a4c84600c60146138e9565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612bdb578360018551612b979190614c17565b81518110612ba757612ba7614c58565b60209101015160f81c608714612bce57505060408051602081019091526000815292915050565b612a4c84600b60146138e9565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612c288383016020015190565b9392505050565b6000815160001415612c4357506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612c7e836139b3565b60c01c90506000612a4c8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612dac5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c65740000006044820152606401610735565b808335612dbf6040860160208701614b43565b612dcf6060870160408801614b5e565b604051602001612e0c9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612e6f5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f2064617461000000000000000000006044820152606401610735565b600080612e7b866139bf565b9092509050843582148015612eaa575063ffffffff8116612ea26040870160208801614b43565b63ffffffff16145b612f425760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a401610735565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612f788561380b565b90925090506000612f8a836001614c6e565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156134e857600061304c8b8761387a565b9050600061305b8c88846138e9565b9050600061306882612c72565b90506000613086600880855161307e9190614c17565b8591906138e9565b90508b606001516001600160401b031660001480156130b95750805160208201208814806130b957508051602082012087145b80156130ce57506000826001600160401b0316115b156130f35763ffffffff851660408d01526001600160401b03821660608d01526134c5565b60008d82604051602001613108929190615210565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156133125760008181526006602052604081206001810154815491929161317a916001600160401b0390811691600160a01b9004166150b6565b60018301549091506001600160401b03808716916131a191600160401b90910416836150b6565b6001600160401b0316111580156131ca5750806001600160401b0316856001600160401b031611155b6132625760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a401610735565b808f6000018181516132749190615126565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f6020018181516132b89190615126565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff191690558861330881614c86565b99505050506134c3565b60008181526007602052604090206001810154600160801b900463ffffffff166133a35760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e000000000000000000000000000000000000000000000000000000006064820152608401610735565b600181015481546000916133cb916001600160401b0391821691600160a01b909104166150b6565b60018301549091506001600160401b03808716916133f291600160401b90910416836150b6565b6001600160401b03161115801561341b5750806001600160401b0316856001600160401b031611155b6134b35760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a401610735565b886134bd81614c86565b99505050505b505b6134cf848a614c6e565b98505050505080806134e090614c86565b915050613038565b50600081116127755760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e00000000006064820152608401610735565b600080600061356d8461380b565b9092509050801580613580575060001982145b1561358f575060009392505050565b600061359c836001614c6e565b905060005b8281101561360257855182106135bd5750600095945050505050565b60006135c98784613a74565b90506000198114156135e2575060009695505050505050565b6135ec8184614c6e565b92505080806135fa90614c86565b9150506135a1565b5093519093149392505050565b600080600061361d8461380b565b9092509050801580613630575060001982145b1561363f575060009392505050565b600061364c836001614c6e565b905060005b82811015613602578551821061366d5750600095945050505050565b6000613679878461387a565b9050600019811415613692575060009695505050505050565b61369c8184614c6e565b92505080806136aa90614c86565b915050613651565b61374b6136ff6136c56040840184614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613abf92505050565b6137098380614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613acc565b6137bd5760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e642074782068617368000000006064820152608401610735565b6138076137cd6040830183614ae9565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613aff92505050565b5050565b600080613819836000613e95565b91509150915091565b600080806138308585612c19565b925061386561383f8686614011565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506138718585613a74565b90509250925092565b6000613887826009614c6e565b8351101561389857506000196120ce565b6000806138af856138aa866008614c6e565b613e95565b90925090506000198214156138ca57600019925050506120ce565b806138d6836009614c6e565b6138e09190614c6e565b95945050505050565b6060816139055750604080516020810190915260008152612c28565b60006139118385614c6e565b90508381118015613923575080855110155b61396f5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610735565b604051915082604083010160405282825283850182038460208701018481015b808210156139a85781518383015260208201915061398f565b505050509392505050565b60006120ce8282612c19565b60008060006139cd8461380b565b91505080600114613a465760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e70757400000000000000000000000000000000006064820152608401610735565b6000613a528582614028565b9050613a5d816141dd565b9350613a6b61383f826141ea565b92505050915091565b6000806000613a8385856141f7565b9092509050600019821415613a9e57600019925050506120ce565b80613aaa836025614c6e565b613ab49190614c6e565b6138e0906004614c6e565b60448101516000906120ce565b60008385148015613adb575081155b8015613ae657508251155b15613af357506001612a4c565b6138e085848685614239565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b158015613b5b57600080fd5b505afa158015613b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b939190615035565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b158015613bf057600080fd5b505afa158015613c04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c289190615035565b90506000613c3d613c38866142e1565b614376565b905082811415613c4f57829350613ccd565b81811415613c5f57819350613ccd565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c74790000000000000000000000000000000000000000000000000000006064820152608401610735565b6000613cd88661439e565b9050600019811415613d525760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e00000000000000000000000000000000000000000000000000000000006064820152608401610735565b600119811415613da45760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e00000000000000000000006044820152606401610735565b600219811415613df65760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e2061206865616465720000006044820152606401610735565b613e207f00000000000000000000000000000000000000000000000000000000000000008661522c565b811015612f425760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e000000000000000000000000006064820152608401610735565b6000806000613ea485856145a5565b905060ff8116613ed6576000858581518110613ec257613ec2614c58565b016020015190935060f81c915061400a9050565b83613ee28260016151c8565b60ff16613eef9190614c6e565b85511015613f06576000196000925092505061400a565b60008160ff1660021415613f4b57613f40613f2c613f25876001614c6e565b8890612c19565b62ffff0060e882901c1660f89190911c1790565b61ffff169050614000565b8160ff1660041415613f7557613f6861383f613f25876001614c6e565b63ffffffff169050614000565b8160ff166008141561400057613ff4613f92613f25876001614c6e565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612c28614021836020614c6e565b8490612c19565b60606000806140368561380b565b90925090506000198214156140985760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b6064820152608401610735565b8084106140e75760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e000000000000000000000000000000006044820152606401610735565b6000806140f5846001614c6e565b905060005b8681101561417e5761410c8883613a74565b92506000198314156141605760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610735565b61416a8383614c6e565b91508061417681614c86565b9150506140fa565b506141898782613a74565b91506000198214156129365760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e207363726970745369670000000000000000006044820152606401610735565b60208101516000906120ce565b60006120ce826020612c19565b600080614205836025614c6e565b8451101561421a57506000199050600061400a565b60008061422c866138aa876024614c6e565b9097909650945050505050565b600060208451614249919061524b565b1561425657506000612a4c565b835161426457506000612a4c565b818560005b86518110156142d45761427d60028461524b565b600114156142a25761429b6142958883016020015190565b83614631565b91506142bb565b6142b8826142b38984016020015190565b614631565b91505b60019290921c916142cd602082614c6e565b9050614269565b5090931495945050505050565b6000806142ef836048612c19565b60e81c9050600083604b8151811061430957614309614c58565b016020015160f81c9050600061433d83600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006143516003846151ed565b60ff16905061436281610100615343565b61436c908361522c565b9695505050505050565b60006120ce7bffff00000000000000000000000000000000000000000000000000008361463d565b6000605082516143ae919061524b565b156143bc5750600019919050565b506040805160808101909152605081526000908190815b845181101561459d576143e7858383614649565b8015614407576143f782846146e8565b6144075750600119949350505050565b6000614412836142e1565b905061441d83612c4b565b9350806145618560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115614574575060021995945050505050565b61458761458082614376565b8690614711565b94506145969050605082614c6e565b90506143d3565b505050919050565b60008282815181106145b9576145b9614c58565b60209101015160f81c60ff14156145d2575060086120ce565b8282815181106145e4576145e4614c58565b60209101015160f81c60fe14156145fd575060046120ce565b82828151811061460f5761460f614c58565b60209101015160f81c60fd1415614628575060026120ce565b50600092915050565b6000612c28838361476f565b6000612c288284614c44565b815160006146578284614c6e565b90508281118015614669575080855110155b6146b55760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610735565b826020860101602085018382015b808310156146de5782518252602092830192909101906146c3565b5050505050505050565b6000806146f48461479d565b90508281146147075760009150506120ce565b5060019392505050565b600061471d8284614c6e565b9050828110156120ce5760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e000000000000006044820152606401610735565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906120ce565b6000602082840312156147bc57600080fd5b5035919050565b6000608082840312156147d557600080fd5b50919050565b6000606082840312156147d557600080fd5b600080600060a0848603121561480257600080fd5b83356001600160401b038082111561481957600080fd5b614825878388016147c3565b9450602086013591508082111561483b57600080fd5b50614848868287016147db565b92505061387185604086016147db565b60008082840361010081121561486d57600080fd5b83356001600160401b0381111561488357600080fd5b61488f868287016147c3565b93505060e0601f19820112156148a457600080fd5b506020830190509250929050565b80356001600160a01b03811681146148c957600080fd5b919050565b600080604083850312156148e157600080fd5b6148ea836148b2565b9150602083013580151581146148ff57600080fd5b809150509250929050565b80356001600160601b0319811681146148c957600080fd5b60006020828403121561493457600080fd5b612c288261490a565b60008060008060c0858703121561495357600080fd5b84356001600160401b038082111561496a57600080fd5b614976888389016147c3565b9550602087013591508082111561498c57600080fd5b50614999878288016147db565b9350506149a986604087016147db565b91506149b760a0860161490a565b905092959194509250565b80356001600160401b03811681146148c957600080fd5b600080600080600060c086880312156149f157600080fd5b6149fa8661490a565b9450614a0987602088016147db565b935060808601356001600160401b0380821115614a2557600080fd5b818801915088601f830112614a3957600080fd5b813581811115614a4857600080fd5b896020828501011115614a5a57600080fd5b602083019550809450505050614a7260a087016149c2565b90509295509295909350565b600060208284031215614a9057600080fd5b612c28826148b2565b634e487b7160e01b600052602160045260246000fd5b6040810160058410614ad157634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e19843603018112614b0057600080fd5b8301803591506001600160401b03821115614b1a57600080fd5b60200191503681900382131561400a57600080fd5b803563ffffffff811681146148c957600080fd5b600060208284031215614b5557600080fd5b612c2882614b2f565b600060208284031215614b7057600080fd5b612c28826149c2565b634e487b7160e01b600052604160045260246000fd5b600060608284031215614ba157600080fd5b604051606081018181106001600160401b0382111715614bd157634e487b7160e01b600052604160045260246000fd5b60405282358152614be460208401614b2f565b6020820152614bf5604084016149c2565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b600082821015614c2957614c29614c01565b500390565b634e487b7160e01b600052601260045260246000fd5b600082614c5357614c53614c2e565b500490565b634e487b7160e01b600052603260045260246000fd5b60008219821115614c8157614c81614c01565b500190565b6000600019821415614c9a57614c9a614c01565b5060010190565b604080825283519082018190526000906020906060840190828701845b82811015614ce35781516001600160a01b031684529284019290840190600101614cbe565b5050508381038285015284518082528583019183019060005b81811015614d1857835183529284019291840191600101614cfc565b5090979650505050505050565b600060208284031215614d3757600080fd5b81356001600160c01b031981168114612c2857600080fd5b600060208284031215614d6157600080fd5b81356001600160e01b031981168114612c2857600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614e4d614e40614e17602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614f0c614e40614e17614dee614ee3601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614fe2614fb960068301614eba565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b8181101561500f5760208185018101518683015201614ff5565b8181111561501e576000828601525b509290920192915050565b6000612c288284614fee565b60006020828403121561504757600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60006001600160401b03808416806150aa576150aa614c2e565b92169190910492915050565b60006001600160401b03838116908316818110156150d6576150d6614c01565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b0380831681851680830382111561514857615148614c01565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b600060ff821660ff84168060ff038211156151e5576151e5614c01565b019392505050565b600060ff821660ff84168082101561520757615207614c01565b90039392505050565b6001600160601b0319831681526000612a4c6014830184614fee565b600081600019048311821515161561524657615246614c01565b500290565b60008261525a5761525a614c2e565b500690565b600181815b8085111561529a57816000190482111561528057615280614c01565b8085161561528d57918102915b93841c9390800290615264565b509250929050565b6000826152b1575060016120ce565b816152be575060006120ce565b81600181146152d457600281146152de576152fa565b60019150506120ce565b60ff8411156152ef576152ef614c01565b50506001821b6120ce565b5060208310610133831016604e8410600b841016171561531d575081810a6120ce565b615327838361525f565b806000190482111561533b5761533b614c01565b029392505050565b6000612c2883836152a256fea2646970667358221220476da63bfc0ddc4259b48a1e10addbb3bb1a4f6c59f1c377c1cc273067640ee864736f6c63430008090033",
865
- "linkReferences": {},
866
- "deployedLinkReferences": {}
876
+ "bytecode": "0x6101006040523480156200001257600080fd5b5060405162004d6838038062004d68833981016040819052620000359162000233565b6200004033620001c6565b6001600160a01b0384166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660a0528316620000fa5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160a01b0380841660c0528216620001585760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b6001600160a01b0390911660e052608052505060008054613d0960a61b600160a01b600160e01b03199091161790557907d000000000000f424000000000000003e800000000000007d0600155600280546001600160401b0319166103e81790556202a30060035562000285565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200022e57600080fd5b919050565b600080600080608085870312156200024a57600080fd5b620002558562000216565b9350620002656020860162000216565b9250620002756040860162000216565b6060959095015193969295505050565b60805160a05160c05160e051614a63620003056000396000818161037501528181610b2301526117f00152600081816104ef0152818161213601526121d00152600081816103bc01528181610a9001528181610b5201528181611757015281816118280152611fbe0152600081816102f901526122660152614a636000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c806383a43428116100ee578063bdf9fca911610097578063e53c0b5511610071578063e53c0b5514610558578063e65e19d51461058b578063e95eb7a8146105cc578063f2fde38b146105e657600080fd5b8063bdf9fca914610511578063cb7f3a091461052b578063d6eccdf01461054557600080fd5b8063b02c43d0116100c8578063b02c43d014610422578063b34b3216146104d7578063b59589d1146104ea57600080fd5b806383a43428146103de5780638da5cb5b146103fe578063a588f0591461040f57600080fd5b80635afb143c1161015057806361d027b31161012a57806361d027b314610370578063715018a6146103af57806376cdb03b146103b757600080fd5b80635afb143c146103305780635c0b48121461034a57806360d712fc1461035d57600080fd5b80631fff4e70116101815780631fff4e70146102dd5780632bb818c2146102f457806359a9d90a1461031b57600080fd5b806303d952f7146101a8578063079bf52c146102535780630b6ba19d1461027e575b600080fd5b6102076101b6366004613e39565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b600154610266906001600160401b031681565b6040516001600160401b03909116815260200161024a565b61020761028c366004613e39565b600860205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e660035481565b60405190815260200161024a565b6102e67f000000000000000000000000000000000000000000000000000000000000000081565b61032e610329366004613e7c565b6105f9565b005b60005461026690600160a01b90046001600160401b031681565b61032e610358366004613ee7565b610bbe565b61032e61036b366004613f5d565b6112b3565b6103977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024a565b61032e61136c565b6103977f000000000000000000000000000000000000000000000000000000000000000081565b6102e66103ec366004613fb1565b60066020526000908152604090205481565b6000546001600160a01b0316610397565b600254610266906001600160401b031681565b610487610430366004613e39565b600560205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161024a565b61032e6104e5366004613fcc565b6113d2565b6103977f000000000000000000000000000000000000000000000000000000000000000081565b60015461026690600160801b90046001600160401b031681565b60015461026690600160401b90046001600160401b031681565b61032e610553366004614068565b61188f565b61057b61056636600461410d565b60046020526000908152604090205460ff1681565b604051901515815260200161024a565b6105be610599366004613fb1565b60096020526000908152604090205460ff81169061010090046001600160401b031682565b60405161024a92919061413e565b60015461026690600160c01b90046001600160401b031681565b61032e6105f436600461410d565b61202e565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae134858561061f612110565b6040518463ffffffff1660e01b815260040161063d939291906141fe565b60206040518083038186803b15801561065557600080fd5b505af4158015610669573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068d91906142f9565b90506000806106dc6106a26040880188614312565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061228d92505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526006905291909120549294509092509080156107f65780863561072f6040890160208a0161436c565b61073f60608a0160408b01614387565b60405160200161077c9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146107e45760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6107f3368790038701876143b8565b91505b600061084461080860208b018b614312565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792506123c0915050565b9050600080806108678460000151886001600160401b031686604001515161293b565b6001549193509150600160401b90046001600160401b03166108898284614440565b11156108d75760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016107db565b60005b8460400151518110156109c557600060018660400151516108fb9190614458565b82146109075783610911565b6109118385614440565b9050808660600151838151811061092a5761092a61446f565b6020026020010151876040015184815181106109485761094861446f565b602002602001015161095a9190614458565b6109649190614458565b8660400151838151811061097a5761097a61446f565b6020026020010181815250508560600151828151811061099c5761099c61446f565b6020026020010151856109af9190614440565b94505080806109bd90614485565b9150506108da565b5060408051602081018b90526000918101919091526001600160c01b031960c089901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198c1660008181526006845284902091909155835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610ac3926004016144a0565b600060405180830381600087803b158015610add57600080fd5b505af1158015610af1573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610b9857600080fd5b505af1158015610bac573d6000803e3d6000fd5b50505050505050505050505050505050565b6000610bd060e0830160c0840161410d565b6001600160a01b03161480610c12575060046000610bf460e0840160c0850161410d565b6001600160a01b0316815260208101919091526040016000205460ff165b610c5e5760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016107db565b6000610c70604083016020840161410d565b610c806060840160408501614524565b610c906080850160608601613fb1565b610ca060a0860160808701613fb1565b610cb060c0870160a0880161454e565b604051602001610cc4959493929190614569565b60408051601f1981840301815291905290506000610d38610ce8602085018561436c565b63ffffffff16610cfb6040870187614312565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506129779050565b90506000610d4582612b42565b9050805160141415610dcb57610d5a83612de8565b6001600160601b031916610d6f826000612e0f565b6001600160601b03191614610dc65760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016107db565b610ec3565b805160201415610e7b57600283604051610de59190614819565b602060405180830381855afa158015610e02573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e2591906142f9565b610e2e82612e25565b14610dc65760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016107db565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016107db565b6000610f28610ed5602088018861454e565b610ee26020890189614312565b610eef60408b018b614312565b610eff60808d0160608e0161454e565b604051602001610f1496959493929190614825565b604051602081830303815290604052612e41565b9050600060058183610f3d60208a018a61436c565b604051602001610f6492919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610fe85760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016107db565b6000610ff385612e68565b6000549091506001600160401b03600160a01b9091048116908216101561105c5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616d6f756e7420746f6f20736d616c6c000000000000000060448201526064016107db565b81547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021782556110a3604088016020890161410d565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff16021782556110f260e0880160c0890161410d565b6001838101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155546001600160401b031661113857600061114e565b60015461114e906001600160401b03168261487d565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef05836111bf60208a018a61436c565b6111cf60408b0160208c0161410d565b846111e060608d0160408e01614524565b6111f060808e0160608f01613fb1565b8d60800160208101906112039190613fb1565b8e60a0016020810190611216919061454e565b8f60c0016020810190611229919061410d565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b0316331461130d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107db565b6001600160a01b038216600081815260046020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146113c65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107db565b6113d06000612ede565b565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae13486866113f8612110565b6040518463ffffffff1660e01b8152600401611416939291906141fe565b60206040518083038186803b15801561142e57600080fd5b505af4158015611442573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146691906142f9565b90506114b66114786020870187614312565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612f3b9050565b6001600160601b0319821660009081526009602052604090205460ff1660018160048111156114e7576114e7614128565b14806115045750600281600481111561150257611502614128565b145b6115765760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016107db565b60006115c46115886040890189614312565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250613140915050565b60608101519091506001600160401b0316156116575782816040015182606001516040516020016116229392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526006909352912055611672565b6001600160601b031984166000908152600660205260408120555b80516001600160601b03198516600090815260096020526040902080546001906116ab90849061010090046001600160401b03166148a3565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516117159291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b1580156117a357600080fd5b505af11580156117b7573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561186e57600080fd5b505af1158015611882573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526009602052604090205460ff1660048111156118bf576118bf614128565b1461190c5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016107db565b6001600160601b03198516600090815260066020526040902054806119995760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016107db565b8085356119ac604088016020890161436c565b6119bc6060890160408a01614387565b6040516020016119f99392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014611a5c5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107db565b6000611a8e600060c01b8686604051602001611a7a939291906148cb565b604051602081830303815290604052612b42565b90506000815111611b075760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016107db565b808051906020012087604051602001611b3091906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611bba5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016107db565b6001546001600160401b03600160801b90910481169084161015611c205760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016107db565b6000878686604051602001611c37939291906148ef565b60408051808303601f19018152918152815160209283012060008181526007909352912060010154909150600160801b900463ffffffff1615611d085760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016107db565b600154600090600160c01b90046001600160401b0316611d29576000611d46565b600154611d4690600160c01b90046001600160401b03168661487d565b6002549091506001600160401b0316611d5f82876148a3565b6001600160601b03198b1660009081526009602052604090208054600190611d9690849061010090046001600160401b0316614913565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600960205260409081902054919091049091169150611dec9060608c01908c01614387565b6001600160401b03161015611e435760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016107db565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526007909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611f73918d918c918c91908c908990899061493e565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b15801561200a57600080fd5b505af115801561201e573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b031633146120885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107db565b6001600160a01b0381166121045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107db565b61210d81612ede565b50565b61213460405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561218d57600080fd5b505afa1580156121a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c591906142f9565b8160000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561222757600080fd5b505afa15801561223b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225f91906142f9565b60208201527f0000000000000000000000000000000000000000000000000000000000000000604082015290565b600080600061229b84613755565b915050806001146123145760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016107db565b60006123208582612977565b905061232b81612e68565b9250600061233882612b42565b905080516014146123b15760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016107db565b60208101519450505050915091565b6123eb6040518060800160405280600081526020016060815260200160608152602001606081525090565b81511515600080806123fc87613755565b9092509050600061240e836001614440565b9050841561242657612421600183614458565b612428565b815b6001600160401b0381111561243f5761243f6143a2565b604051908082528060200260200182016040528015612468578160200160208202803683370190505b5060208701819052516001600160401b03811115612488576124886143a2565b6040519080825280602002602001820160405280156124b1578160200160208202803683370190505b5060408701526020860151516001600160401b038111156124d4576124d46143a2565b6040519080825280602002602001820160405280156124fd578160200160208202803683370190505b5060608701526000805b8381101561283e57600080600061251e8d8761376c565b925092509250600060056000858560405160200161255392919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff161561278f576001810154600160e01b900463ffffffff16156125ee5760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016107db565b8b60200151518614156126695760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107db565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b0390921691889081106126c2576126c261446f565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b031691889081106127065761270661446f565b6020026020010181815250508b6040015186815181106127285761272861446f565b60200260200101518c6000018181516127419190614440565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106127725761277261446f565b60209081029190910101528561278781614485565b96505061281b565b8915158b1515141580156127a357508c5184145b156127d3578c604001516001600160401b03168c6000018181516127c79190614440565b9052506001995061281b565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016107db565b6128258288614440565b965050505050808061283690614485565b915050612507565b50600081116128b55760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016107db565b8415158615151461292e5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107db565b5050505050505b92915050565b600080806129498587614458565b905061295584826149a1565b9150836129628383614458565b61296c91906149b5565b925050935093915050565b606060008061298585613755565b90925090506000198214156129e75760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107db565b808410612a365760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016107db565b600080612a44846001614440565b905060005b86811015612acd57612a5b88836137c4565b9250600019831415612aaf5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107db565b612ab98383614440565b915080612ac581614485565b915050612a49565b50612ad887826137c4565b9150600019821415612b2c5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107db565b612b37878284613833565b979650505050505050565b6060600082600881518110612b5957612b5961446f565b0160200151835160f89190911c9150612b738260096149c9565b60ff1614612b91575050604080516020810190915260008152919050565b82600981518110612ba457612ba461446f565b016020015160f81c612c4a5760028160ff161015612bd2575050604080516020810190915260008152919050565b600083600a81518110612be757612be761446f565b016020015160f81c9050612bfc6002836149ee565b60ff1681141580612c1a575080602014158015612c1a575080601414155b15612c3657505060408051602081019091526000815292915050565b612c4284600b83613833565b949350505050565b6000612c57846008612e0f565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612d345783600b81518110612cb657612cb661446f565b60209101015160f81c6014141580612d0b5750612ce160028551612cda9190614458565b8590612e0f565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612d2757505060408051602081019091526000815292915050565b612c4284600c6014613833565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612dd1578360018551612d8d9190614458565b81518110612d9d57612d9d61446f565b60209101015160f81c608714612dc457505060408051602081019091526000815292915050565b612c4284600b6014613833565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612e1e8383016020015190565b9392505050565b6000815160001415612e3957506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612e74836138fd565b60c01c90506000612c428264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526006602052604090205480612fa25760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016107db565b808335612fb5604086016020870161436c565b612fc56060870160408801614387565b6040516020016130029392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146130655760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107db565b60008061307186613909565b90925090508435821480156130a0575063ffffffff8116613098604087016020880161436c565b63ffffffff16145b6131385760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016107db565b505050505050565b6040805160808101825260008082526020820181905291810182905260608101829052908061316e85613755565b90925090506000613180836001614440565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156136de5760006132428b876137c4565b905060006132518c8884613833565b9050600061325e82612e68565b9050600061327c60088085516132749190614458565b859190613833565b90508b606001516001600160401b031660001480156132af5750805160208201208814806132af57508051602082012087145b80156132c457506000826001600160401b0316115b156132e95763ffffffff851660408d01526001600160401b03821660608d01526136bb565b60008d826040516020016132fe929190614a11565b60408051808303601f19018152918152815160209283012060008181526007909352912060010154909150600160801b900463ffffffff161561350857600081815260076020526040812060018101548154919291613370916001600160401b0390811691600160a01b9004166148a3565b60018301549091506001600160401b038087169161339791600160401b90910416836148a3565b6001600160401b0316111580156133c05750806001600160401b0316856001600160401b031611155b6134585760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016107db565b808f60000181815161346a9190614913565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f6020018181516134ae9190614913565b6001600160401b0316905250600083815260076020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff19169055886134fe81614485565b99505050506136b9565b60008181526008602052604090206001810154600160801b900463ffffffff166135995760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016107db565b600181015481546000916135c1916001600160401b0391821691600160a01b909104166148a3565b60018301549091506001600160401b03808716916135e891600160401b90910416836148a3565b6001600160401b0316111580156136115750806001600160401b0316856001600160401b031611155b6136a95760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016107db565b886136b381614485565b99505050505b505b6136c5848a614440565b98505050505080806136d690614485565b91505061322e565b506000811161292e5760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016107db565b6000806137638360006139be565b91509150915091565b6000808061377a8585612e0f565b92506137af6137898686613b3a565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506137bb8585613b51565b90509250925092565b60006137d1826009614440565b835110156137e25750600019612935565b6000806137f9856137f4866008614440565b6139be565b90925090506000198214156138145760001992505050612935565b80613820836009614440565b61382a9190614440565b95945050505050565b60608161384f5750604080516020810190915260008152612e1e565b600061385b8385614440565b9050838111801561386d575080855110155b6138b95760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016107db565b604051915082604083010160405282825283850182038460208701018481015b808210156138f2578151838301526020820191506138d9565b505050509392505050565b60006129358282612e0f565b600080600061391784613755565b915050806001146139905760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016107db565b600061399c8582613b9c565b90506139a781613d51565b93506139b561378982613d5e565b92505050915091565b60008060006139cd8585613d6b565b905060ff81166139ff5760008585815181106139eb576139eb61446f565b016020015190935060f81c9150613b339050565b83613a0b8260016149c9565b60ff16613a189190614440565b85511015613a2f5760001960009250925050613b33565b60008160ff1660021415613a7457613a69613a55613a4e876001614440565b8890612e0f565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613b29565b8160ff1660041415613a9e57613a91613789613a4e876001614440565b63ffffffff169050613b29565b8160ff1660081415613b2957613b1d613abb613a4e876001614440565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612e1e613b4a836020614440565b8490612e0f565b6000806000613b608585613df7565b9092509050600019821415613b7b5760001992505050612935565b80613b87836025614440565b613b919190614440565b61382a906004614440565b6060600080613baa85613755565b9092509050600019821415613c0c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107db565b808410613c5b5760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016107db565b600080613c69846001614440565b905060005b86811015613cf257613c808883613b51565b9250600019831415613cd45760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107db565b613cde8383614440565b915080613cea81614485565b915050613c6e565b50613cfd8782613b51565b9150600019821415612b2c5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107db565b6020810151600090612935565b6000612935826020612e0f565b6000828281518110613d7f57613d7f61446f565b60209101015160f81c60ff1415613d9857506008612935565b828281518110613daa57613daa61446f565b60209101015160f81c60fe1415613dc357506004612935565b828281518110613dd557613dd561446f565b60209101015160f81c60fd1415613dee57506002612935565b50600092915050565b600080613e05836025614440565b84511015613e1a575060001990506000613b33565b600080613e2c866137f4876024614440565b9097909650945050505050565b600060208284031215613e4b57600080fd5b5035919050565b600060808284031215613e6457600080fd5b50919050565b600060608284031215613e6457600080fd5b600080600060a08486031215613e9157600080fd5b83356001600160401b0380821115613ea857600080fd5b613eb487838801613e52565b94506020860135915080821115613eca57600080fd5b50613ed786828701613e6a565b9250506137bb8560408601613e6a565b600080828403610100811215613efc57600080fd5b83356001600160401b03811115613f1257600080fd5b613f1e86828701613e52565b93505060e0601f1982011215613f3357600080fd5b506020830190509250929050565b80356001600160a01b0381168114613f5857600080fd5b919050565b60008060408385031215613f7057600080fd5b613f7983613f41565b915060208301358015158114613f8e57600080fd5b809150509250929050565b80356001600160601b031981168114613f5857600080fd5b600060208284031215613fc357600080fd5b612e1e82613f99565b60008060008060c08587031215613fe257600080fd5b84356001600160401b0380821115613ff957600080fd5b61400588838901613e52565b9550602087013591508082111561401b57600080fd5b5061402887828801613e6a565b9350506140388660408701613e6a565b915061404660a08601613f99565b905092959194509250565b80356001600160401b0381168114613f5857600080fd5b600080600080600060c0868803121561408057600080fd5b61408986613f99565b94506140988760208801613e6a565b935060808601356001600160401b03808211156140b457600080fd5b818801915088601f8301126140c857600080fd5b8135818111156140d757600080fd5b8960208285010111156140e957600080fd5b60208301955080945050505061410160a08701614051565b90509295509295909350565b60006020828403121561411f57600080fd5b612e1e82613f41565b634e487b7160e01b600052602160045260246000fd5b604081016005841061416057634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b80356001600160e01b031981168114613f5857600080fd5b6000808335601e198436030181126141a757600080fd5b83016020810192503590506001600160401b038111156141c657600080fd5b803603831315613b3357600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60a0815260006001600160e01b03198061421787614178565b1660a084015261422a6020870187614190565b608060c0860152614240610120860182846141d5565b9150506142506040880188614190565b858303609f190160e08701526142678382846141d5565b925050508161427860608901614178565b1661010085015283810360208501526142918687614190565b9250606082526142a56060830184836141d5565b925050602086013560208201526142bf6040870187614190565b82840360408401526142d28482846141d5565b945050505050612c4260408301848051825260208082015190830152604090810151910152565b60006020828403121561430b57600080fd5b5051919050565b6000808335601e1984360301811261432957600080fd5b8301803591506001600160401b0382111561434357600080fd5b602001915036819003821315613b3357600080fd5b803563ffffffff81168114613f5857600080fd5b60006020828403121561437e57600080fd5b612e1e82614358565b60006020828403121561439957600080fd5b612e1e82614051565b634e487b7160e01b600052604160045260246000fd5b6000606082840312156143ca57600080fd5b604051606081018181106001600160401b03821117156143fa57634e487b7160e01b600052604160045260246000fd5b6040528235815261440d60208401614358565b602082015261441e60408401614051565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156144535761445361442a565b500190565b60008282101561446a5761446a61442a565b500390565b634e487b7160e01b600052603260045260246000fd5b60006000198214156144995761449961442a565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156144e25781516001600160a01b0316845292840192908401906001016144bd565b5050508381038285015284518082528583019183019060005b81811015614517578351835292840192918401916001016144fb565b5090979650505050505050565b60006020828403121561453657600080fd5b81356001600160c01b031981168114612e1e57600080fd5b60006020828403121561456057600080fd5b612e1e82614178565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f820152600061463d614630614607602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526146fc6146306146076145de6146d3601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506147d26147a9600683016146aa565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b818110156147ff57602081850181015186830152016147e5565b8181111561480e576000828601525b509290920192915050565b6000612e1e82846147de565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061489757614897614867565b92169190910492915050565b60006001600160401b03838116908316818110156148c3576148c361442a565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b038083168185168083038211156149355761493561442a565b01949350505050565b6bffffffffffffffffffffffff198816815260c06020820152600061496760c08301888a6141d5565b6001600160a01b03969096166040830152506001600160401b039384166060820152918316608083015290911660a0909101529392505050565b6000826149b0576149b0614867565b500690565b6000826149c4576149c4614867565b500490565b600060ff821660ff84168060ff038211156149e6576149e661442a565b019392505050565b600060ff821660ff841680821015614a0857614a0861442a565b90039392505050565b6001600160601b0319831681526000612c4260148301846147de56fea2646970667358221220d0c71cedaffd0031682dd2f33400bfd36c686a127cfc56c4da7dc0369d95ce7164736f6c63430008090033",
877
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101a35760003560e01c806383a43428116100ee578063bdf9fca911610097578063e53c0b5511610071578063e53c0b5514610558578063e65e19d51461058b578063e95eb7a8146105cc578063f2fde38b146105e657600080fd5b8063bdf9fca914610511578063cb7f3a091461052b578063d6eccdf01461054557600080fd5b8063b02c43d0116100c8578063b02c43d014610422578063b34b3216146104d7578063b59589d1146104ea57600080fd5b806383a43428146103de5780638da5cb5b146103fe578063a588f0591461040f57600080fd5b80635afb143c1161015057806361d027b31161012a57806361d027b314610370578063715018a6146103af57806376cdb03b146103b757600080fd5b80635afb143c146103305780635c0b48121461034a57806360d712fc1461035d57600080fd5b80631fff4e70116101815780631fff4e70146102dd5780632bb818c2146102f457806359a9d90a1461031b57600080fd5b806303d952f7146101a8578063079bf52c146102535780630b6ba19d1461027e575b600080fd5b6102076101b6366004613e39565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b600154610266906001600160401b031681565b6040516001600160401b03909116815260200161024a565b61020761028c366004613e39565b600860205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b6102e660035481565b60405190815260200161024a565b6102e67f000000000000000000000000000000000000000000000000000000000000000081565b61032e610329366004613e7c565b6105f9565b005b60005461026690600160a01b90046001600160401b031681565b61032e610358366004613ee7565b610bbe565b61032e61036b366004613f5d565b6112b3565b6103977f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161024a565b61032e61136c565b6103977f000000000000000000000000000000000000000000000000000000000000000081565b6102e66103ec366004613fb1565b60066020526000908152604090205481565b6000546001600160a01b0316610397565b600254610266906001600160401b031681565b610487610430366004613e39565b600560205260009081526040902080546001909101546001600160a01b03808316926001600160401b03600160a01b80830482169463ffffffff600160e01b94859004811695821694928204909316929190041686565b604080516001600160a01b0397881681526001600160401b03968716602082015263ffffffff958616918101919091529590921660608601529290921660808401521660a082015260c00161024a565b61032e6104e5366004613fcc565b6113d2565b6103977f000000000000000000000000000000000000000000000000000000000000000081565b60015461026690600160801b90046001600160401b031681565b60015461026690600160401b90046001600160401b031681565b61032e610553366004614068565b61188f565b61057b61056636600461410d565b60046020526000908152604090205460ff1681565b604051901515815260200161024a565b6105be610599366004613fb1565b60096020526000908152604090205460ff81169061010090046001600160401b031682565b60405161024a92919061413e565b60015461026690600160c01b90046001600160401b031681565b61032e6105f436600461410d565b61202e565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae134858561061f612110565b6040518463ffffffff1660e01b815260040161063d939291906141fe565b60206040518083038186803b15801561065557600080fd5b505af4158015610669573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068d91906142f9565b90506000806106dc6106a26040880188614312565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061228d92505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526006905291909120549294509092509080156107f65780863561072f6040890160208a0161436c565b61073f60608a0160408b01614387565b60405160200161077c9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146107e45760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6107f3368790038701876143b8565b91505b600061084461080860208b018b614312565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792506123c0915050565b9050600080806108678460000151886001600160401b031686604001515161293b565b6001549193509150600160401b90046001600160401b03166108898284614440565b11156108d75760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064016107db565b60005b8460400151518110156109c557600060018660400151516108fb9190614458565b82146109075783610911565b6109118385614440565b9050808660600151838151811061092a5761092a61446f565b6020026020010151876040015184815181106109485761094861446f565b602002602001015161095a9190614458565b6109649190614458565b8660400151838151811061097a5761097a61446f565b6020026020010181815250508560600151828151811061099c5761099c61446f565b6020026020010151856109af9190614440565b94505080806109bd90614485565b9150506108da565b5060408051602081018b90526000918101919091526001600160c01b031960c089901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198c1660008181526006845284902091909155835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a1602084015160408086015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169263266a123a92610ac3926004016144a0565b600060405180830381600087803b158015610add57600080fd5b505af1158015610af1573d6000803e3d6000fd5b50506040517f5b86f5990000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790527f0000000000000000000000000000000000000000000000000000000000000000169250635b86f5999150604401600060405180830381600087803b158015610b9857600080fd5b505af1158015610bac573d6000803e3d6000fd5b50505050505050505050505050505050565b6000610bd060e0830160c0840161410d565b6001600160a01b03161480610c12575060046000610bf460e0840160c0850161410d565b6001600160a01b0316815260208101919091526040016000205460ff165b610c5e5760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016107db565b6000610c70604083016020840161410d565b610c806060840160408501614524565b610c906080850160608601613fb1565b610ca060a0860160808701613fb1565b610cb060c0870160a0880161454e565b604051602001610cc4959493929190614569565b60408051601f1981840301815291905290506000610d38610ce8602085018561436c565b63ffffffff16610cfb6040870187614312565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506129779050565b90506000610d4582612b42565b9050805160141415610dcb57610d5a83612de8565b6001600160601b031916610d6f826000612e0f565b6001600160601b03191614610dc65760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016107db565b610ec3565b805160201415610e7b57600283604051610de59190614819565b602060405180830381855afa158015610e02573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610e2591906142f9565b610e2e82612e25565b14610dc65760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016107db565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016107db565b6000610f28610ed5602088018861454e565b610ee26020890189614312565b610eef60408b018b614312565b610eff60808d0160608e0161454e565b604051602001610f1496959493929190614825565b604051602081830303815290604052612e41565b9050600060058183610f3d60208a018a61436c565b604051602001610f6492919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610fe85760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016107db565b6000610ff385612e68565b6000549091506001600160401b03600160a01b9091048116908216101561105c5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616d6f756e7420746f6f20736d616c6c000000000000000060448201526064016107db565b81547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021782556110a3604088016020890161410d565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff16021782556110f260e0880160c0890161410d565b6001838101805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039390931692909217909155546001600160401b031661113857600061114e565b60015461114e906001600160401b03168261487d565b6001830180546001600160401b0392909216600160a01b027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef05836111bf60208a018a61436c565b6111cf60408b0160208c0161410d565b846111e060608d0160408e01614524565b6111f060808e0160608f01613fb1565b8d60800160208101906112039190613fb1565b8e60a0016020810190611216919061454e565b8f60c0016020810190611229919061410d565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b0316331461130d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107db565b6001600160a01b038216600081815260046020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146113c65760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107db565b6113d06000612ede565b565b600073__$a0a90fa014aeccc935ad103f88ed15a604$__639d7ae13486866113f8612110565b6040518463ffffffff1660e01b8152600401611416939291906141fe565b60206040518083038186803b15801561142e57600080fd5b505af4158015611442573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146691906142f9565b90506114b66114786020870187614312565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612f3b9050565b6001600160601b0319821660009081526009602052604090205460ff1660018160048111156114e7576114e7614128565b14806115045750600281600481111561150257611502614128565b145b6115765760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016107db565b60006115c46115886040890189614312565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250613140915050565b60608101519091506001600160401b0316156116575782816040015182606001516040516020016116229392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526006909352912055611672565b6001600160601b031984166000908152600660205260408120555b80516001600160601b03198516600090815260096020526040902080546001906116ab90849061010090046001600160401b03166148a3565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516117159291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b1580156117a357600080fd5b505af11580156117b7573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561186e57600080fd5b505af1158015611882573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526009602052604090205460ff1660048111156118bf576118bf614128565b1461190c5760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016107db565b6001600160601b03198516600090815260066020526040902054806119995760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016107db565b8085356119ac604088016020890161436c565b6119bc6060890160408a01614387565b6040516020016119f99392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014611a5c5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107db565b6000611a8e600060c01b8686604051602001611a7a939291906148cb565b604051602081830303815290604052612b42565b90506000815111611b075760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016107db565b808051906020012087604051602001611b3091906001600160601b031991909116815260140190565b604051602081830303815290604052805190602001201415611bba5760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016107db565b6001546001600160401b03600160801b90910481169084161015611c205760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016107db565b6000878686604051602001611c37939291906148ef565b60408051808303601f19018152918152815160209283012060008181526007909352912060010154909150600160801b900463ffffffff1615611d085760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016107db565b600154600090600160c01b90046001600160401b0316611d29576000611d46565b600154611d4690600160c01b90046001600160401b03168661487d565b6002549091506001600160401b0316611d5f82876148a3565b6001600160601b03198b1660009081526009602052604090208054600190611d9690849061010090046001600160401b0316614913565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d166000908152600960205260409081902054919091049091169150611dec9060608c01908c01614387565b6001600160401b03161015611e435760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016107db565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526007909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611f73918d918c918c91908c908990899061493e565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b15801561200a57600080fd5b505af115801561201e573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b031633146120885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107db565b6001600160a01b0381166121045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107db565b61210d81612ede565b50565b61213460405180606001604052806000815260200160008152602001600081525090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561218d57600080fd5b505afa1580156121a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c591906142f9565b8160000181815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561222757600080fd5b505afa15801561223b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061225f91906142f9565b60208201527f0000000000000000000000000000000000000000000000000000000000000000604082015290565b600080600061229b84613755565b915050806001146123145760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016107db565b60006123208582612977565b905061232b81612e68565b9250600061233882612b42565b905080516014146123b15760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016107db565b60208101519450505050915091565b6123eb6040518060800160405280600081526020016060815260200160608152602001606081525090565b81511515600080806123fc87613755565b9092509050600061240e836001614440565b9050841561242657612421600183614458565b612428565b815b6001600160401b0381111561243f5761243f6143a2565b604051908082528060200260200182016040528015612468578160200160208202803683370190505b5060208701819052516001600160401b03811115612488576124886143a2565b6040519080825280602002602001820160405280156124b1578160200160208202803683370190505b5060408701526020860151516001600160401b038111156124d4576124d46143a2565b6040519080825280602002602001820160405280156124fd578160200160208202803683370190505b5060608701526000805b8381101561283e57600080600061251e8d8761376c565b925092509250600060056000858560405160200161255392919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff161561278f576001810154600160e01b900463ffffffff16156125ee5760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016107db565b8b60200151518614156126695760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107db565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b0390921691889081106126c2576126c261446f565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b9092046001600160401b031691889081106127065761270661446f565b6020026020010181815250508b6040015186815181106127285761272861446f565b60200260200101518c6000018181516127419190614440565b905250600181015460608d01518051600160a01b9092046001600160401b031691889081106127725761277261446f565b60209081029190910101528561278781614485565b96505061281b565b8915158b1515141580156127a357508c5184145b156127d3578c604001516001600160401b03168c6000018181516127c79190614440565b9052506001995061281b565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016107db565b6128258288614440565b965050505050808061283690614485565b915050612507565b50600081116128b55760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016107db565b8415158615151461292e5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016107db565b5050505050505b92915050565b600080806129498587614458565b905061295584826149a1565b9150836129628383614458565b61296c91906149b5565b925050935093915050565b606060008061298585613755565b90925090506000198214156129e75760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107db565b808410612a365760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016107db565b600080612a44846001614440565b905060005b86811015612acd57612a5b88836137c4565b9250600019831415612aaf5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107db565b612ab98383614440565b915080612ac581614485565b915050612a49565b50612ad887826137c4565b9150600019821415612b2c5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016107db565b612b37878284613833565b979650505050505050565b6060600082600881518110612b5957612b5961446f565b0160200151835160f89190911c9150612b738260096149c9565b60ff1614612b91575050604080516020810190915260008152919050565b82600981518110612ba457612ba461446f565b016020015160f81c612c4a5760028160ff161015612bd2575050604080516020810190915260008152919050565b600083600a81518110612be757612be761446f565b016020015160f81c9050612bfc6002836149ee565b60ff1681141580612c1a575080602014158015612c1a575080601414155b15612c3657505060408051602081019091526000815292915050565b612c4284600b83613833565b949350505050565b6000612c57846008612e0f565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612d345783600b81518110612cb657612cb661446f565b60209101015160f81c6014141580612d0b5750612ce160028551612cda9190614458565b8590612e0f565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b15612d2757505060408051602081019091526000815292915050565b612c4284600c6014613833565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415612dd1578360018551612d8d9190614458565b81518110612d9d57612d9d61446f565b60209101015160f81c608714612dc457505060408051602081019091526000815292915050565b612c4284600b6014613833565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000612e1e8383016020015190565b9392505050565b6000815160001415612e3957506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b600080612e74836138fd565b60c01c90506000612c428264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526006602052604090205480612fa25760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016107db565b808335612fb5604086016020870161436c565b612fc56060870160408801614387565b6040516020016130029392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146130655760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016107db565b60008061307186613909565b90925090508435821480156130a0575063ffffffff8116613098604087016020880161436c565b63ffffffff16145b6131385760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016107db565b505050505050565b6040805160808101825260008082526020820181905291810182905260608101829052908061316e85613755565b90925090506000613180836001614440565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156136de5760006132428b876137c4565b905060006132518c8884613833565b9050600061325e82612e68565b9050600061327c60088085516132749190614458565b859190613833565b90508b606001516001600160401b031660001480156132af5750805160208201208814806132af57508051602082012087145b80156132c457506000826001600160401b0316115b156132e95763ffffffff851660408d01526001600160401b03821660608d01526136bb565b60008d826040516020016132fe929190614a11565b60408051808303601f19018152918152815160209283012060008181526007909352912060010154909150600160801b900463ffffffff161561350857600081815260076020526040812060018101548154919291613370916001600160401b0390811691600160a01b9004166148a3565b60018301549091506001600160401b038087169161339791600160401b90910416836148a3565b6001600160401b0316111580156133c05750806001600160401b0316856001600160401b031611155b6134585760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016107db565b808f60000181815161346a9190614913565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f6020018181516134ae9190614913565b6001600160401b0316905250600083815260076020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff19169055886134fe81614485565b99505050506136b9565b60008181526008602052604090206001810154600160801b900463ffffffff166135995760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016107db565b600181015481546000916135c1916001600160401b0391821691600160a01b909104166148a3565b60018301549091506001600160401b03808716916135e891600160401b90910416836148a3565b6001600160401b0316111580156136115750806001600160401b0316856001600160401b031611155b6136a95760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016107db565b886136b381614485565b99505050505b505b6136c5848a614440565b98505050505080806136d690614485565b91505061322e565b506000811161292e5760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016107db565b6000806137638360006139be565b91509150915091565b6000808061377a8585612e0f565b92506137af6137898686613b3a565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b91506137bb8585613b51565b90509250925092565b60006137d1826009614440565b835110156137e25750600019612935565b6000806137f9856137f4866008614440565b6139be565b90925090506000198214156138145760001992505050612935565b80613820836009614440565b61382a9190614440565b95945050505050565b60608161384f5750604080516020810190915260008152612e1e565b600061385b8385614440565b9050838111801561386d575080855110155b6138b95760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016107db565b604051915082604083010160405282825283850182038460208701018481015b808210156138f2578151838301526020820191506138d9565b505050509392505050565b60006129358282612e0f565b600080600061391784613755565b915050806001146139905760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016107db565b600061399c8582613b9c565b90506139a781613d51565b93506139b561378982613d5e565b92505050915091565b60008060006139cd8585613d6b565b905060ff81166139ff5760008585815181106139eb576139eb61446f565b016020015190935060f81c9150613b339050565b83613a0b8260016149c9565b60ff16613a189190614440565b85511015613a2f5760001960009250925050613b33565b60008160ff1660021415613a7457613a69613a55613a4e876001614440565b8890612e0f565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613b29565b8160ff1660041415613a9e57613a91613789613a4e876001614440565b63ffffffff169050613b29565b8160ff1660081415613b2957613b1d613abb613a4e876001614440565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b6000612e1e613b4a836020614440565b8490612e0f565b6000806000613b608585613df7565b9092509050600019821415613b7b5760001992505050612935565b80613b87836025614440565b613b919190614440565b61382a906004614440565b6060600080613baa85613755565b9092509050600019821415613c0c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016107db565b808410613c5b5760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016107db565b600080613c69846001614440565b905060005b86811015613cf257613c808883613b51565b9250600019831415613cd45760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107db565b613cde8383614440565b915080613cea81614485565b915050613c6e565b50613cfd8782613b51565b9150600019821415612b2c5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016107db565b6020810151600090612935565b6000612935826020612e0f565b6000828281518110613d7f57613d7f61446f565b60209101015160f81c60ff1415613d9857506008612935565b828281518110613daa57613daa61446f565b60209101015160f81c60fe1415613dc357506004612935565b828281518110613dd557613dd561446f565b60209101015160f81c60fd1415613dee57506002612935565b50600092915050565b600080613e05836025614440565b84511015613e1a575060001990506000613b33565b600080613e2c866137f4876024614440565b9097909650945050505050565b600060208284031215613e4b57600080fd5b5035919050565b600060808284031215613e6457600080fd5b50919050565b600060608284031215613e6457600080fd5b600080600060a08486031215613e9157600080fd5b83356001600160401b0380821115613ea857600080fd5b613eb487838801613e52565b94506020860135915080821115613eca57600080fd5b50613ed786828701613e6a565b9250506137bb8560408601613e6a565b600080828403610100811215613efc57600080fd5b83356001600160401b03811115613f1257600080fd5b613f1e86828701613e52565b93505060e0601f1982011215613f3357600080fd5b506020830190509250929050565b80356001600160a01b0381168114613f5857600080fd5b919050565b60008060408385031215613f7057600080fd5b613f7983613f41565b915060208301358015158114613f8e57600080fd5b809150509250929050565b80356001600160601b031981168114613f5857600080fd5b600060208284031215613fc357600080fd5b612e1e82613f99565b60008060008060c08587031215613fe257600080fd5b84356001600160401b0380821115613ff957600080fd5b61400588838901613e52565b9550602087013591508082111561401b57600080fd5b5061402887828801613e6a565b9350506140388660408701613e6a565b915061404660a08601613f99565b905092959194509250565b80356001600160401b0381168114613f5857600080fd5b600080600080600060c0868803121561408057600080fd5b61408986613f99565b94506140988760208801613e6a565b935060808601356001600160401b03808211156140b457600080fd5b818801915088601f8301126140c857600080fd5b8135818111156140d757600080fd5b8960208285010111156140e957600080fd5b60208301955080945050505061410160a08701614051565b90509295509295909350565b60006020828403121561411f57600080fd5b612e1e82613f41565b634e487b7160e01b600052602160045260246000fd5b604081016005841061416057634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b80356001600160e01b031981168114613f5857600080fd5b6000808335601e198436030181126141a757600080fd5b83016020810192503590506001600160401b038111156141c657600080fd5b803603831315613b3357600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60a0815260006001600160e01b03198061421787614178565b1660a084015261422a6020870187614190565b608060c0860152614240610120860182846141d5565b9150506142506040880188614190565b858303609f190160e08701526142678382846141d5565b925050508161427860608901614178565b1661010085015283810360208501526142918687614190565b9250606082526142a56060830184836141d5565b925050602086013560208201526142bf6040870187614190565b82840360408401526142d28482846141d5565b945050505050612c4260408301848051825260208082015190830152604090810151910152565b60006020828403121561430b57600080fd5b5051919050565b6000808335601e1984360301811261432957600080fd5b8301803591506001600160401b0382111561434357600080fd5b602001915036819003821315613b3357600080fd5b803563ffffffff81168114613f5857600080fd5b60006020828403121561437e57600080fd5b612e1e82614358565b60006020828403121561439957600080fd5b612e1e82614051565b634e487b7160e01b600052604160045260246000fd5b6000606082840312156143ca57600080fd5b604051606081018181106001600160401b03821117156143fa57634e487b7160e01b600052604160045260246000fd5b6040528235815261440d60208401614358565b602082015261441e60408401614051565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156144535761445361442a565b500190565b60008282101561446a5761446a61442a565b500390565b634e487b7160e01b600052603260045260246000fd5b60006000198214156144995761449961442a565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156144e25781516001600160a01b0316845292840192908401906001016144bd565b5050508381038285015284518082528583019183019060005b81811015614517578351835292840192918401916001016144fb565b5090979650505050505050565b60006020828403121561453657600080fd5b81356001600160c01b031981168114612e1e57600080fd5b60006020828403121561456057600080fd5b612e1e82614178565b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f820152600061463d614630614607602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526146fc6146306146076145de6146d3601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506147d26147a9600683016146aa565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b818110156147ff57602081850181015186830152016147e5565b8181111561480e576000828601525b509290920192915050565b6000612e1e82846147de565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038084168061489757614897614867565b92169190910492915050565b60006001600160401b03838116908316818110156148c3576148c361442a565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b038083168185168083038211156149355761493561442a565b01949350505050565b6bffffffffffffffffffffffff198816815260c06020820152600061496760c08301888a6141d5565b6001600160a01b03969096166040830152506001600160401b039384166060820152918316608083015290911660a0909101529392505050565b6000826149b0576149b0614867565b500690565b6000826149c4576149c4614867565b500490565b600060ff821660ff84168060ff038211156149e6576149e661442a565b019392505050565b600060ff821660ff841680821015614a0857614a0861442a565b90039392505050565b6001600160601b0319831681526000612c4260148301846147de56fea2646970667358221220d0c71cedaffd0031682dd2f33400bfd36c686a127cfc56c4da7dc0369d95ce7164736f6c63430008090033",
878
+ "linkReferences": {
879
+ "contracts/bridge/BitcoinTx.sol": {
880
+ "BitcoinTx": [
881
+ {
882
+ "length": 20,
883
+ "start": 2306
884
+ },
885
+ {
886
+ "length": 20,
887
+ "start": 5851
888
+ }
889
+ ]
890
+ }
891
+ },
892
+ "deployedLinkReferences": {
893
+ "contracts/bridge/BitcoinTx.sol": {
894
+ "BitcoinTx": [
895
+ {
896
+ "length": 20,
897
+ "start": 1533
898
+ },
899
+ {
900
+ "length": 20,
901
+ "start": 5078
902
+ }
903
+ ]
904
+ }
905
+ }
867
906
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/c6d4a581e072c3a6ede3e105233cc390.json"
3
+ "buildInfo": "../../../build-info/7c0ac1415929deeaa3e0f2f0bf2db7d9.json"
4
4
  }