0 txs
0 calls
constructor
No constructor.
functions
appId
viewfunction appId() view returns (uint256)
ccTransferRequests
viewfunction ccTransferRequests(bytes32) view returns (uint256 inputAmount, address recipientAddress, uint256 fee, uint256 speed, bool isUsed)
chainId
viewfunction chainId() view returns (uint256)
instantRouter
viewfunction instantRouter() view returns (address)
isRequestUsed
viewfunction isRequestUsed(bytes32 _txId) view returns (bool)
lockerPercentageFee
viewfunction lockerPercentageFee() view returns (uint256)
lockers
viewfunction lockers() view returns (address)
owner
viewfunction owner() view returns (address)
protocolPercentageFee
viewfunction protocolPercentageFee() view returns (uint256)
relay
viewfunction relay() view returns (address)
rewardDistributor
viewfunction rewardDistributor() view returns (address)
startingBlockNumber
viewfunction startingBlockNumber() view returns (uint256)
teleBTC
viewfunction teleBTC() view returns (address)
thirdParty
viewfunction thirdParty(bytes32) view returns (uint256)
thirdPartyAddress
viewfunction thirdPartyAddress(uint256) view returns (address)
thirdPartyFee
viewfunction thirdPartyFee(uint256) view returns (uint256)
treasury
viewfunction treasury() view returns (address)
initialize
nonpayablefunction initialize(uint256 _startingBlockNumber, uint256 _protocolPercentageFee, uint256 _lockerPercentageFee, uint256 _chainId, uint256 _appId, address _relay, address _lockers, address _teleBTC, address _treasury)
renounceOwnership
nonpayablefunction renounceOwnership()
setInstantRouter
nonpayablefunction setInstantRouter(address _instantRouter)
setLockerPercentageFee
nonpayablefunction setLockerPercentageFee(uint256 _lockerPercentageFee)
setLockers
nonpayablefunction setLockers(address _lockers)
setProtocolPercentageFee
nonpayablefunction setProtocolPercentageFee(uint256 _protocolPercentageFee)
setRelay
nonpayablefunction setRelay(address _relay)
setStartingBlockNumber
nonpayablefunction setStartingBlockNumber(uint256 _startingBlockNumber)
setTeleBTC
nonpayablefunction setTeleBTC(address _teleBTC)
setThirdPartyAddress
nonpayablefunction setThirdPartyAddress(uint256 _thirdPartyId, address _thirdPartyAddress)
setThirdPartyFee
nonpayablefunction setThirdPartyFee(uint256 _thirdPartyId, uint256 _thirdPartyFee)
setTreasury
nonpayablefunction setTreasury(address _treasury)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
wrap
payablefunction wrap(tuple _txAndProof, bytes _lockerLockingScript) payable returns (bool)
events
Initialized
event Initialized(uint8 version)
NewInstantRouter
event NewInstantRouter(address oldInstantRouter, address newInstantRouter)
NewLockers
event NewLockers(address oldLockers, address newLockers)
NewProtocolPercentageFee
event NewProtocolPercentageFee(uint256 oldProtocolPercentageFee, uint256 newProtocolPercentageFee)
NewRelay
event NewRelay(address oldRelay, address newRelay)
NewTeleBTC
event NewTeleBTC(address oldTeleBTC, address newTeleBTC)
NewThirdPartyAddress
event NewThirdPartyAddress(uint256 thirdPartyId, address oldThirdPartyAddress, address newThirdPartyAddress)
NewThirdPartyFee
event NewThirdPartyFee(uint256 thirdPartyId, uint256 oldThirdPartyFee, uint256 newThirdPartyFee)
NewTreasury
event NewTreasury(address oldTreasury, address newTreasury)
NewWrap
event NewWrap(bytes32 bitcoinTxId, bytes indexed lockerLockingScript, address lockerTargetAddress, address indexed user, address teleporter, uint256[2] amounts, uint256[4] fees, uint256 thirdPartyId, uint256 destinationChainId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
ZeroAddress
error ZeroAddress()
creation bytecode
0x608060405234801561001057600080fd5b506142ae806100206000396000f3fe60806040526004361061016c5760003560e01c8063136dfb63146101785780631812adb61461019a5780631876dec4146101c35780631e7107c7146101fb57806359fd0b0c1461021b57806361d027b31461024857806363908020146102685780636600203d1461027e57806370872aa51461029e578063715018a6146102b4578063765f0233146102c95780637ed55748146103525780637f0f18171461037257806380afdea81461039257806380bc4726146103a8578063870ba6cf146103d85780638d3d78cd146103f85780638d5fc1d4146104185780638da5cb5b146104385780638f9eb78b1461044d5780639a8a05921461046d578063a9b6827114610483578063acc2166a146104b9578063b14d3532146104d9578063b59589d1146104f9578063b866d6ea14610519578063c805f68b1461052c578063e35a0a881461054c578063e9770e931461056c578063f0f4426014610599578063f2fde38b146105b957600080fd5b3661017357005b600080fd5b34801561018457600080fd5b50610198610193366004613d38565b6105d9565b005b3480156101a657600080fd5b506101b060035481565b6040519081526020015b60405180910390f35b3480156101cf57600080fd5b506005546101e3906001600160a01b031681565b6040516001600160a01b0390911681526020016101ba565b34801561020757600080fd5b50610198610216366004613ba9565b610764565b34801561022757600080fd5b506101b0610236366004613ba9565b60a26020526000908152604090205481565b34801561025457600080fd5b506008546101e3906001600160a01b031681565b34801561027457600080fd5b506101b0600a5481565b34801561028a57600080fd5b50610198610299366004613ba9565b610778565b3480156102aa57600080fd5b506101b060005481565b3480156102c057600080fd5b50610198610789565b3480156102d557600080fd5b506103206102e4366004613ba9565b6009602052600090815260409020805460018201546002830154600384015460049094015492936001600160a01b039092169290919060ff1685565b604080519586526001600160a01b0390941660208601529284019190915260608301521515608082015260a0016101ba565b34801561035e57600080fd5b5061019861036d366004613ba9565b610793565b34801561037e57600080fd5b5061019861038d366004613b51565b6107a4565b34801561039e57600080fd5b506101b060025481565b3480156103b457600080fd5b506103c86103c3366004613ba9565b6107b5565b60405190151581526020016101ba565b3480156103e457600080fd5b506101986103f3366004613b51565b6107de565b34801561040457600080fd5b506006546101e3906001600160a01b031681565b34801561042457600080fd5b50610198610433366004613ce8565b6107ef565b34801561044457600080fd5b506101e3610805565b34801561045957600080fd5b50610198610468366004613d17565b610814565b34801561047957600080fd5b506101b060015481565b34801561048f57600080fd5b506101e361049e366004613ba9565b60a3602052600090815260409020546001600160a01b031681565b3480156104c557600080fd5b50600b546101e3906001600160a01b031681565b3480156104e557600080fd5b506101986104f4366004613b51565b610826565b34801561050557600080fd5b506004546101e3906001600160a01b031681565b6103c8610527366004613bd9565b610837565b34801561053857600080fd5b50610198610547366004613b51565b610c9a565b34801561055857600080fd5b506007546101e3906001600160a01b031681565b34801561057857600080fd5b506101b0610587366004613ba9565b60a46020526000908152604090205481565b3480156105a557600080fd5b506101986105b4366004613b51565b610cab565b3480156105c557600080fd5b506101986105d4366004613b51565b610cbc565b600b54600160a81b900460ff16158080156106015750600b546001600160a01b90910460ff16105b806106225750303b1580156106225750600b54600160a01b900460ff166001145b61068a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600b805460ff60a01b1916600160a01b17905580156106b757600b805460ff60a81b1916600160a81b1790555b6106bf610d32565b6106c7610d63565b600187905560028690556106da8a610d94565b6106e389610dfc565b6106ec88610ea6565b6106f585610f12565b6106fe84610fa4565b61070783611036565b610710826110c8565b801561075857600b805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b61076c61115a565b61077581610d94565b50565b61078061115a565b61077581610ea6565b61079161115a565b565b61079b61115a565b61077581610dfc565b6107ac61115a565b61077581611036565b60008181526009602052604081206004015460ff166107d55760006107d8565b60015b92915050565b6107e661115a565b610775816111b9565b6107f761115a565b610801828261124b565b5050565b603e546001600160a01b031690565b61081c61115a565b61080182826112e7565b61082e61115a565b61077581610fa4565b6000610841611348565b6007546001600160a01b0316336001600160a01b0316146108a45760405162461bcd60e51b815260206004820181905260248201527f43435472616e73666572526f757465723a20696e76616c69642073656e6465726044820152606401610681565b600054846080015110156109065760405162461bcd60e51b8152602060048201526024808201527f43435472616e73666572526f757465723a207265717565737420697320746f6f604482015263081bdb1960e21b6064820152608401610681565b600061092485600001518660200151876040015188606001516113a2565b60008181526009602052604090206004015490915060ff16156109a05760405162461bcd60e51b815260206004820152602e60248201527f43435472616e73666572526f757465723a20726571756573742068617320626560448201526d656e2075736564206265666f726560901b6064820152608401610681565b60608501516001600160e01b03191615610a0d5760405162461bcd60e51b815260206004820152602860248201527f43435472616e73666572526f757465723a206c6f636b2074696d65206973206e6044820152676f6e202d7a65726f60c01b6064820152608401610681565b610a5184848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060408701518361150a565b610a698186608001518760a001518860c00151611962565b610ad65760405162461bcd60e51b815260206004820152603860248201527f43435472616e73666572526f757465723a207472616e73616374696f6e2068616044820152771cc81b9bdd081899595b88199a5b985b1a5e9959081e595d60421b6064820152608401610681565b6000806000806000610b1f89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611ae0915050565b60008b81526009602052604090819020600101549051959a50939850919650945092506001600160a01b031690610b59908b908b90613e45565b60405180910390207fdebe45dc811f213ee5572218ab9c9e7d78fac393b0ca5c50ea9edbe5c8bcb61788600560009054906101000a90046001600160a01b03166001600160a01b031663c4d10b6a8e8e6040518363ffffffff1660e01b8152600401610bc6929190613f90565b60206040518083038186803b158015610bde57600080fd5b505afa158015610bf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c169190613b6d565b60408051808201825260008d8152600960209081528382205483528083018e905283516080810185528c81528082018b90528085018e9052606081018c90528f835260a490915290839020546001549351610c779695943394939291613ed3565b60405180910390a360019650505050505050610c936001607055565b9392505050565b610ca261115a565b61077581610f12565b610cb361115a565b610775816110c8565b610cc461115a565b6001600160a01b038116610d295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610681565b61077581611ba9565b600b54600160a81b900460ff16610d5b5760405162461bcd60e51b815260040161068190614000565b610791611bfb565b600b54600160a81b900460ff16610d8c5760405162461bcd60e51b815260040161068190614000565b610791611c2d565b6000548111610df75760405162461bcd60e51b815260206004820152602960248201527f43435472616e73666572526f757465723a206c6f77207374617274696e67426c60448201526837b1b5a73ab6b132b960b91b6064820152608401610681565b600055565b806127101015610e655760405162461bcd60e51b815260206004820152602e60248201527f43435472616e73666572526f757465723a2070726f746f636f6c20666565206960448201526d73206f7574206f662072616e676560901b6064820152608401610681565b60035460408051918252602082018390527f7d205f60891f60851c61cd244ba387d72b6589e7c0ac41b9d909ab0ce2c2a53b910160405180910390a1600355565b806127101015610f0d5760405162461bcd60e51b815260206004820152602c60248201527f43435472616e73666572526f757465723a206c6f636b6572206665652069732060448201526b6f7574206f662072616e676560a01b6064820152608401610681565b600a55565b806001600160a01b038116610f3a5760405163d92e233d60e01b815260040160405180910390fd5b6004546040517f4c28a3f61a715259c4dc930c23e7423b8fa52e13232c061a6e488729c66184f491610f79916001600160a01b03909116908590613ea0565b60405180910390a150600480546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b038116610fcc5760405163d92e233d60e01b815260040160405180910390fd5b6005546040517ffa021c2ec0f46429a53e7f88b88065e40001f50c9d38b2e8b713beaf9828d4c39161100b916001600160a01b03909116908590613ea0565b60405180910390a150600580546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b03811661105e5760405163d92e233d60e01b815260040160405180910390fd5b6006546040517f36a4c08a38b736dcecb6c328dba61238529620e83ccb23db2cc43cd34ec260969161109d916001600160a01b03909116908590613ea0565b60405180910390a150600680546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b0381166110f05760405163d92e233d60e01b815260040160405180910390fd5b6008546040517f567657fa3f286518b318f4a29870674f433f622fdfc819691acb13105b2282259161112f916001600160a01b03909116908590613ea0565b60405180910390a150600880546001600160a01b0319166001600160a01b0392909216919091179055565b33611163610805565b6001600160a01b0316146107915760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610681565b806001600160a01b0381166111e15760405163d92e233d60e01b815260040160405180910390fd5b6007546040517f12ad124e13af4c31364ad22aa74320e167b37f005dafb75d71a210c49da3629e91611220916001600160a01b03909116908590613ea0565b60405180910390a150600780546001600160a01b0319166001600160a01b0392909216919091179055565b600082815260a36020526040908190205490517f1e73962bcff5b98a9ac70c9b0f71fbb31dc0f5a09348c6d3ceab164169a9e729916112b19185916001600160a01b03169085909283526001600160a01b03918216602084015216604082015260600190565b60405180910390a1600091825260a3602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b600082815260a26020908152604091829020548251858152918201529081018290527f188adabf806a6b6d814acc1dbd9f09e5a251c8c065d6285749a5824e4579b6459060600160405180910390a1600091825260a2602052604090912055565b6002607054141561139b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610681565b6002607055565b6000806113b96113b4825b8790611c56565b611c7a565b90506113ca62ffffff198216611dd0565b156114145760405162461bcd60e51b815260206004820152601a602482015279109a5d18dbda5b92195b1c195c8e881d9a5b881a5cc81b9d5b1b60321b6044820152606401610681565b600060028787878760405160200161142f9493929190613df2565b60408051601f198184030181529082905261144991613e55565b602060405180830381855afa158015611466573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906114899190613bc1565b905060006002826040516020016114a291815260200190565b60408051601f19818403018152908290526114bc91613e55565b602060405180830381855afa1580156114d9573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906114fc9190613bc1565b93505050505b949350505050565b60055460405163aff2faa360e01b81526001600160a01b039091169063aff2faa39061153a908690600401613fbf565b60206040518083038186803b15801561155257600080fd5b505afa158015611566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158a9190613b89565b6115fe576040805162461bcd60e51b81526020600482015260248101919091527f43435472616e73666572526f757465723a206e6f206c6f636b6572207769746860448201527f2074686520676976656e206c6f636b696e6720736372697074206578697374736064820152608401610681565b61163b6040518060a001604052806000815260200160006001600160a01b0316815260200160008152602001600081526020016000151581525090565b60606116478486611ddc565b6001600160401b0390911683528051909150601c146116a85760405162461bcd60e51b815260206004820152601d60248201527f43435472616e73666572526f757465723a20696e76616c6964206c656e0000006044820152606401610681565b81516117055760405162461bcd60e51b815260206004820152602660248201527f43435472616e73666572526f757465723a20696e70757420616d6f756e74206960448201526573207a65726f60d01b6064820152608401610681565b60015461171182611f57565b61ffff16146117745760405162461bcd60e51b815260206004820152602960248201527f43435472616e73666572526f757465723a20636861696e206964206973206e6f6044820152681d0818dbdc9c9958dd60ba1b6064820152608401610681565b60025461178082611f72565b60ff16146117e05760405162461bcd60e51b815260206004820152602760248201527f43435472616e73666572526f757465723a20617070206964206973206e6f742060448201526618dbdc9c9958dd60ca1b6064820152608401610681565b60006117eb82611f8c565b62ffffff16905082600001518111156118445760405162461bcd60e51b815260206004820152601b60248201527a43435472616e73666572526f757465723a2077726f6e672066656560281b6044820152606401610681565b6040830181905261185482611fa7565b6001600160a01b0316602084015261186b82611fc2565b60ff1660608401819052156118d25760405162461bcd60e51b815260206004820152602760248201527f43435472616e73666572526f757465723a207370656564206973206f7574206f604482015266662072616e676560c81b6064820152608401610681565b6118db82611fd1565b600085815260a46020908152604080832060ff949094169093556001608087018181529783526009825291839020865181559086015191810180546001600160a01b0319166001600160a01b03909316929092179091559084015160028201556060909301516003840155505090516004909101805460ff19169115159190911790555050565b6004805460405163d0a8973960e01b81529182018590526000602483018190529182916001600160a01b03169063d0a897399060440160206040518083038186803b1580156119b057600080fd5b505afa1580156119c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e89190613bc1565b905080341015611a4f5760405162461bcd60e51b815260206004820152602c60248201527f43435472616e73666572526f757465723a207061696420666565206973206e6f60448201526b1d081cdd59999a58da595b9d60a21b6064820152608401610681565b600454604051600091611aac916001600160a01b0390911690611a7c908a908a908a908a90602401613f60565b60408051601f198184030181529190526020810180516001600160e01b0316634354da2560e01b17905284611fe0565b9050611ac133611abc8434614165565b612006565b80806020019051810190611ad59190613b89565b979650505050505050565b6000806000806000611af28787612121565b60065460008c8152600960205260409081902060010154905163a9059cbb60e01b8152969b5094995092975090955093506001600160a01b039081169263a9059cbb92611b459216908990600401613eba565b602060405180830381600087803b158015611b5f57600080fd5b505af1158015611b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b979190613b89565b509295509295909350565b6001607055565b603e80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600b54600160a81b900460ff16611c245760405162461bcd60e51b815260040161068190614000565b61079133611ba9565b600b54600160a81b900460ff16611ba25760405162461bcd60e51b815260040161068190614000565b815160009060208401611c7164ffffffffff85168284612513565b95945050505050565b60008181611c90815b62ffffff19841690612557565b50611ca062ffffff198516612631565b6001600160601b0316611cbc57611cb5612640565b9250611dc9565b6000611cc9856000612648565b90506000611cdc62ffffff198716612631565b6001600160601b031690506001600160401b038216611d0657611cfd612640565b94505050611dc9565b6000611d1183612791565b60ff16905060005b836001600160401b0316811015611d8f57828210611d4457611d39612640565b965050505050611dc9565b6000611d64611d538486614165565b60055b62ffffff198c1691906127ef565b9050611d6f81612819565b611d799084614073565b9250508080611d87906141f3565b915050611d19565b50818114611da957611d9f612640565b9550505050611dc9565b611dc360065b60d81b6301000000600160d81b0389161790565b95505050505b5050919050565b62ffffff199081161490565b6000606081611df2611ded826113ad565b61286d565b9050611e0362ffffff198216611dd0565b15611e4e5760405162461bcd60e51b815260206004820152601b60248201527a109a5d18dbda5b92195b1c195c8e881d9bdd5d081a5cc81b9d5b1b602a1b6044820152606401610681565b6000806000806000611e61866000612648565b6001600160401b0316905060005b81811015611f4957611e81878261296e565b9550611e8c86612a93565b9450611e9786612ae7565b9350611ea284612b31565b925062ffffff198084161415611f255789604051602001611ec39190613e55565b60405160208183030381529060405280519060200120611ee88662ffffff1916612c53565b604051602001611ef89190613e55565b604051602081830303815290604052805190602001201415611f2057611f1d86612c99565b98505b611f37565b611f3462ffffff198416612c53565b97505b80611f41816141f3565b915050611e6f565b505050505050509250929050565b600080611f678360006001612cbe565b600201519392505050565b600080611f8183600280612cbe565b600101519392505050565b600080611f9c8360176019612cbe565b600301519392505050565b600080611fb78360036016612cbe565b601401519392505050565b600080611f8183601a80612cbe565b600080611f8183601b80612cbe565b606061150284848460405180606001604052806029815260200161425060299139612d43565b804710156120565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610681565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146120a3576040519150601f19603f3d011682016040523d82523d6000602084013e6120a8565b606091505b505090508061211c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c20726044820152791958da5c1a595b9d081b585e481a185d99481c995d995c9d195960321b6064820152608401610681565b505050565b6005546000828152600960205260408082205490516307f3f86760e21b8152919283928392839283926001600160a01b0390911691631fcfe19c9161216d918b91309190600401613fd2565b602060405180830381600087803b15801561218757600080fd5b505af115801561219b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bf9190613bc1565b50600354600087815260096020526040902054612710916121df9161411d565b6121e991906140fd565b6000878152600960208181526040808420600281015460a4845282862054865260a2845291852054948c905292909152905492965094506127109161222e919061411d565b61223891906140fd565b600a546000888152600960205260409020549193506127109161225b919061411d565b61226591906140fd565b905082156122f1576006546001600160a01b031663a9059cbb33856040518363ffffffff1660e01b815260040161229d929190613eba565b602060405180830381600087803b1580156122b757600080fd5b505af11580156122cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ef9190613b89565b505b83156123815760065460085460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9261232d929116908890600401613eba565b602060405180830381600087803b15801561234757600080fd5b505af115801561235b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237f9190613b89565b505b811561242b57600654600087815260a46020908152604080832054835260a39091529081902054905163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926123d7929116908690600401613eba565b602060405180830381600087803b1580156123f157600080fd5b505af1158015612405573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124299190613b89565b505b80156124c95760055460405163626885b560e11b81526124c9916001600160a01b03169063c4d10b6a90612463908b90600401613fbf565b60206040518083038186803b15801561247b57600080fd5b505afa15801561248f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b39190613b6d565b600088815260a460205260409020548390612e60565b6000868152600960205260409020548190839085906124e9908890614165565b6124f39190614165565b6124fd9190614165565b6125079190614165565b94509295509295909350565b6000806125208385614073565b9050604051811115612530575060005b806125425762ffffff19915050610c93565b5050606092831b9190911790911b1760181b90565b60006125638383612fe8565b61262a5760006125826125768560d81c90565b64ffffffffff1661300b565b91505060006125978464ffffffffff1661300b565b6040517f5479706520617373657274696f6e206661696c65642e20476f7420307800000060208201526001600160b01b031960b086811b8216603d8401526c05c408af0e0cac6e8cac84060f609b1b604784015283901b16605482015290925060009150605e015b60405160208183030381529060405290508060405162461bcd60e51b81526004016106819190613fbf565b5090919050565b60181c6001600160601b031690565b62ffffff1990565b60008061265d62ffffff1985168460016130b7565b905060fc811161267857612670816130e7565b9150506107d8565b8060fd14156126de576126a66126a1612692856001614073565b62ffffff198716906002613153565b6130e7565b91506126b182612791565b60ff166003146126d9576126d76126d262ffffff1986168560036000613296565b6132fc565b505b61278a565b8060fe1415612733576127076126a16126f8856001614073565b62ffffff198716906004613153565b915061271282612791565b60ff166005146126d9576126d76126d262ffffff1986168560056000613296565b8060ff141561278a5761275c6126a161274d856001614073565b62ffffff198716906008613153565b915061276782612791565b60ff1660091461278a576127886126d262ffffff1986168560096000613296565b505b5092915050565b600060fc826001600160401b0316116127ac57506001919050565b61ffff826001600160401b0316116127c657506003919050565b63ffffffff826001600160401b0316116127e257506005919050565b506009919050565b919050565b600061150284846127ff87612631565b6001600160601b03166128129190614165565b8585613296565b600081600561282781611c83565b506000612835856024612648565b9050806001600160401b031661284a82612791565b60ff166128579190614073565b612862906024614073565b611c71906004614073565b6000818161287a81611c83565b5061288a62ffffff198516612631565b6001600160601b031661289f57611cb5612640565b60006128ac856000612648565b905060006128bf62ffffff198716612631565b6001600160601b031690506001600160401b0382166128e057611cfd612640565b60006128eb83612791565b60ff16905060005b836001600160401b03168110156129545782821061291357611d39612640565b60006129296129228486614165565b600e611d56565b905061293481613384565b61293e9084614073565b925050808061294c906141f3565b9150506128f3565b5081811461296457611d9f612640565b611dc3600f611daf565b600082600f61297c81611c83565b50600061298a866000612648565b6001600160401b0316905060006129a662ffffff198816612631565b6001600160601b031690508186106129f45760405162461bcd60e51b81526020600482015260116024820152702b37baba103932b0b21037bb32b9393ab760791b6044820152606401610681565b60006129ff83612791565b60ff1690506000805b88811015612a5557612a2c612a1d8486614165565b62ffffff198c1690600e6127ef565b9150612a3782613384565b612a419084614073565b9250612a4e600182614073565b9050612a08565b50612a636129228385614165565b90506000612a7082613384565b9050612a8562ffffff198b168483600d613296565b9a9950505050505050505050565b600081600d612aa181611c83565b506000612aaf856008612648565b9050611c71612abd82612791565b612ac89060086140b6565b60ff166001600160401b03831660075b62ffffff198916929190613296565b600081600d612af581611c83565b506000612b03856008612648565b9050611c71600882612b1484612791565b60ff16612b21919061408b565b6001600160401b03166007612ad8565b6000816007612b3f81611c83565b506000612b4d856000612648565b90506000612b676126a162ffffff198816600260016130b7565b9050612b7b62ffffff1987166001806130b7565b606a141580612baf5750612b9060028361417c565b6001600160401b0316612bac62ffffff198816600260016130b7565b14155b15612bbc57611cfd612640565b604d826001600160401b031611158015612be057506004826001600160401b031610155b612c2c5760405162461bcd60e51b815260206004820152601f60248201527f426974636f696e48656c7065723a20696e76616c6964206f7072657475726e006044820152606401610681565b612c4962ffffff19871660036001600160401b038416600c613296565b9695505050505050565b6060600080612c6184612631565b60405193508392506001600160601b03169050612c8884612c83846020614073565b6133cd565b508181016020016040529052919050565b600081600d612ca781611c83565b506115026126a162ffffff19861660006008613153565b60606000835b612ccf846001614073565b811015612d3a57858181518110612cf657634e487b7160e01b600052603260045260246000fd5b602001015160f81c60f81b91508282604051602001612d16929190613e71565b60405160208183030381529060405292508080612d32906141f3565b915050612cc4565b50509392505050565b606082471015612da45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610681565b843b612df25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610681565b600080866001600160a01b03168587604051612e0e9190613e55565b60006040518083038185875af1925050503d8060008114612e4b576040519150601f19603f3d011682016040523d82523d6000602084013e612e50565b606091505b5091509150611ad5828286613510565b811561211c57600b546001600160a01b03161580612e7d57508015155b15612f0c5760065460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90612eb49086908690600401613eba565b602060405180830381600087803b158015612ece57600080fd5b505af1158015612ee2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f069190613b89565b50505050565b600654600b5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392612f42929116908690600401613eba565b602060405180830381600087803b158015612f5c57600080fd5b505af1158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f949190613b89565b50600b54604051612f06916001600160a01b031690612fb99086908690602401613eba565b60408051601f198184030181529190526020810180516001600160e01b0316637db4e28f60e01b179052613549565b60008164ffffffffff16612ffc8460d81c90565b64ffffffffff16149392505050565b600080601f5b600f8160ff16111561306957600061302a82600861413c565b60ff1685901c905061303b8161358b565b61ffff16841793508160ff1660101461305657601084901b93505b506130626001826141a4565b9050613011565b50600f5b60ff8160ff1610156130b15760ff600882021684901c61308c8161358b565b61ffff16831792508160ff166000146130a757601083901b92505b506000190161306d565b50915091565b60006130c48260206141a4565b6130cf90600861413c565b60ff166130dd8585856135bd565b901c949350505050565b60006001600160401b0382111561314f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610681565b5090565b60006115026131638585856135bd565b60008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff161790506040816001600160401b03600160801b03600160c01b0316901b604082901c6001600160401b03600160801b03600160c01b0316179050608081901b608082901c179050919050565b6000806132a2866136eb565b6001600160601b031690506132b6866136fa565b846132c18784614073565b6132cb9190614073565b11156132de5762ffffff19915050611502565b6132e88582614073565b9050612c498364ffffffffff168286612513565b6060600061333a6133358261332761331962ffffff198816612631565b6001600160601b0316613727565b62ffffff19871691906130b7565b61300b565b6040517a09cdedc5adad2dcd2dac2d840ecc2e440d2dce85c408edee84060f602b1b60208201526001600160701b0319607083901b16603b82015290925060009150604d016125ff565b600081600e61339281611c83565b5060006133a0856008612648565b9050806001600160401b03166133b582612791565b60ff166133c29190614073565b611c71906008614073565b60006133d883613788565b6134355760405162461bcd60e51b815260206004820152602860248201527f54797065644d656d566965772f636f7079546f202d204e756c6c20706f696e7460448201526732b9103232b932b360c11b6064820152608401610681565b61343e8361379a565b61349e5760405162461bcd60e51b815260206004820152602b60248201527f54797065644d656d566965772f636f7079546f202d20496e76616c696420706f60448201526a34b73a32b9103232b932b360a91b6064820152608401610681565b60006134a984612631565b6001600160601b0316905060006134bf856136eb565b6001600160601b0316905060006040519050848111156134df5760206060fd5b8285848460045afa50612c496134f58760d81c90565b64ffffffffff60601b606091821b168717901b841760181b90565b6060831561351f575081610c93565b82511561352f5782518084602001fd5b8160405162461bcd60e51b81526004016106819190613fbf565b6060610c9383836040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c656400008152506137d8565b600061359d60048360ff16901c6137e7565b60ff1661ffff919091161760081b6135b4826137e7565b60ff1617919050565b600060ff82166135cf57506000610c93565b6135d884612631565b6001600160601b03166135ee60ff841685614073565b111561363e57613625613600856136eb565b6001600160601b031661361286612631565b6001600160601b0316858560ff16613943565b60405162461bcd60e51b81526004016106819190613fbf565b60208260ff1611156136b55760405162461bcd60e51b815260206004820152603a60248201527f54797065644d656d566965772f696e646578202d20417474656d7074656420746044820152796f20696e646578206d6f7265207468616e20333220627974657360301b6064820152608401610681565b6008820260006136c4866136eb565b6001600160601b031690506000600160ff1b60001984011d91909501511695945050505050565b60781c6001600160601b031690565b600061370582612631565b61370e836136eb565b61371891906140db565b6001600160601b031692915050565b600060ff82111561314f5760405162461bcd60e51b815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2038604482015264206269747360d81b6064820152608401610681565b600061379382611dd0565b1592915050565b60006137a68260d81c90565b64ffffffffff1664ffffffffff14156137c157506000919050565b60006137cc836136fa565b60405110199392505050565b60606115028484600085612d43565b600060f08083179060ff821614156138025750603092915050565b8060ff1660f114156138175750603192915050565b8060ff1660f2141561382c5750603292915050565b8060ff1660f314156138415750603392915050565b8060ff1660f414156138565750603492915050565b8060ff1660f5141561386b5750603592915050565b8060ff1660f614156138805750603692915050565b8060ff1660f714156138955750603792915050565b8060ff1660f814156138aa5750603892915050565b8060ff1660f914156138bf5750603992915050565b8060ff1660fa14156138d45750606192915050565b8060ff1660fb14156138e95750606292915050565b8060ff1660fc14156138fe5750606392915050565b8060ff1660fd14156139135750606492915050565b8060ff1660fe14156139285750606592915050565b8060ff1660ff141561393d5750606692915050565b50919050565b606060006139508661300b565b915050600061395e8661300b565b915050600061396c8661300b565b915050600061397a8661300b565b604080517f54797065644d656d566965772f696e646578202d204f76657272616e20746865602082015274040ecd2caee5c40a6d8d2c6ca40d2e640c2e84060f605b1b818301526001600160d01b031960d098891b811660558301526e040eed2e8d040d8cadccee8d04060f608b1b605b830181905297891b8116606a8301527f2e20417474656d7074656420746f20696e646578206174206f666673657420306070830152600f60fb1b609083015295881b861660918201526097810196909652951b90921660a68401525050601760f91b60ac8201528151808203608d01815260ad90910190915295945050505050565b80356001600160e01b0319811681146127ea57600080fd5b60008083601f840112613a96578182fd5b5081356001600160401b03811115613aac578182fd5b602083019150836020828501011115613ac457600080fd5b9250929050565b600082601f830112613adb578081fd5b81356001600160401b0380821115613af557613af5614224565b604051601f8301601f19908116603f01168101908282118183101715613b1d57613b1d614224565b81604052838152866020858801011115613b35578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215613b62578081fd5b8135610c938161423a565b600060208284031215613b7e578081fd5b8151610c938161423a565b600060208284031215613b9a578081fd5b81518015158114610c93578182fd5b600060208284031215613bba578081fd5b5035919050565b600060208284031215613bd2578081fd5b5051919050565b600080600060408486031215613bed578182fd5b83356001600160401b0380821115613c03578384fd5b9085019060e08288031215613c16578384fd5b613c1e61404b565b613c2783613a6d565b8152602083013582811115613c3a578586fd5b613c4689828601613acb565b602083015250604083013582811115613c5d578586fd5b613c6989828601613acb565b604083015250613c7b60608401613a6d565b60608201526080830135608082015260a083013582811115613c9b578586fd5b613ca789828601613acb565b60a08301525060c083013560c0820152809550506020860135915080821115613cce578384fd5b50613cdb86828701613a85565b9497909650939450505050565b60008060408385031215613cfa578182fd5b823591506020830135613d0c8161423a565b809150509250929050565b60008060408385031215613d29578182fd5b50508035926020909101359150565b60008060008060008060008060006101208a8c031215613d56578485fd5b8935985060208a0135975060408a0135965060608a0135955060808a0135945060a08a0135613d848161423a565b935060c08a0135613d948161423a565b925060e08a0135613da48161423a565b91506101008a0135613db58161423a565b809150509295985092959850929598565b60008151808452613dde8160208601602086016141c7565b601f01601f19169290920160200192915050565b600063ffffffff60e01b80871683528551613e14816004860160208a016141c7565b855190840190613e2b816004840160208a016141c7565b919094169301600481019390935250506008019392505050565b8183823760009101908152919050565b60008251613e678184602087016141c7565b9190910192915050565b60008351613e838184602088016141c7565b6001600160f81b0319939093169190920190815260010192915050565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b8781526001600160a01b038781166020808401919091529087166040830152610160820190606083018760005b6002811015613f1d57815183529183019190830190600101613f00565b50505060a083018660005b6004811015613f4557815183529183019190830190600101613f28565b50505050610120820193909352610140015295945050505050565b848152836020820152608060408201526000613f7f6080830185613dc6565b905082606083015295945050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b602081526000610c936020830184613dc6565b606081526000613fe56060830186613dc6565b6001600160a01b039490941660208301525060400152919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60405160e081016001600160401b038111828210171561406d5761406d614224565b60405290565b600082198211156140865761408661420e565b500190565b60006001600160401b038281168482168083038211156140ad576140ad61420e565b01949350505050565b600060ff821660ff84168060ff038211156140d3576140d361420e565b019392505050565b60006001600160601b038281168482168083038211156140ad576140ad61420e565b60008261411857634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156141375761413761420e565b500290565b600060ff821660ff84168160ff048111821515161561415d5761415d61420e565b029392505050565b6000828210156141775761417761420e565b500390565b60006001600160401b038381169083168181101561419c5761419c61420e565b039392505050565b600060ff821660ff8416808210156141be576141be61420e565b90039392505050565b60005b838110156141e25781810151838201526020016141ca565b83811115612f065750506000910152565b60006000198214156142075761420761420e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461077557600080fdfe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220db85e8a297f65de7a91288db4814b3e4a5682c8f9cd7d1c5c62d08026719429164736f6c63430008040033