1 tx
2 calls
constructor
constructor()
functions
activatedAddresses
viewfunction activatedAddresses(address) view returns (bool)
btcAddr1
viewfunction btcAddr1() view returns (string)
btcAddr2
viewfunction btcAddr2() view returns (string)
getBTCDepositAddress
viewfunction getBTCDepositAddress(address ethAddress) view returns (string)
networkHrp
viewfunction networkHrp() view returns (string)
owner
viewfunction owner() view returns (address)
p1x
viewfunction p1x() view returns (uint256)
p1y
viewfunction p1y() view returns (uint256)
p2x
viewfunction p2x() view returns (uint256)
p2y
viewfunction p2y() view returns (uint256)
parseBTCTaprootAddress
purefunction parseBTCTaprootAddress(string _hrp, string _bitcoinAddress) pure returns (uint256, uint256)
wasSeedSet
viewfunction wasSeedSet() view returns (bool)
activateUser
nonpayablefunction activateUser(address _userAddress)
renounceOwnership
nonpayablefunction renounceOwnership()
setSeed
nonpayablefunction setSeed(string _btcAddr1, string _btcAddr2, uint8 _network)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SeedChanged
event SeedChanged(string btcAddr1, string btcAddr2, string hrp)
UserAddressActivated
event UserAddressActivated(address userETHAddress)
errors
CannotParseBtcAddress
error CannotParseBtcAddress(string btcAddress, string hrp, uint8 err)
EncodingIsUnknown
error EncodingIsUnknown()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SeedWasNotSetYet
error SeedWasNotSetYet()
UnsupportedBtcAddress
error UnsupportedBtcAddress(string btcAddress)
creation bytecode
0x6080604052348015600f57600080fd5b506000805460ff191690553380603f57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b604681604b565b50609d565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61435e806100ac6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c8063ad38cb0b11610097578063c1d643b111610066578063c1d643b1146101e3578063cca03acb1461020b578063e5451bc814610214578063f2fde38b1461022757600080fd5b8063ad38cb0b146101b6578063ad427415146101bf578063b1185919146101c7578063b4acfe1c146101d057600080fd5b80638da5cb5b116100d35780638da5cb5b146101645780639fa4989c1461017f578063a0ddd62f1461018c578063a62ef0731461019f57600080fd5b80630b68f450146101055780632fbb7ab61461013d5780634edac78914610152578063715018a61461015a575b600080fd5b610128610113366004613b72565b60096020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b61014561023a565b6040516101349190613beb565b6101456102c8565b6101626102d5565b005b6008546040516001600160a01b039091168152602001610134565b6000546101289060ff1681565b61014561019a366004613b72565b6102e9565b6101a860075481565b604051908152602001610134565b6101a860055481565b610145610360565b6101a860045481565b6101626101de366004613b72565b61036d565b6101f66101f1366004613c55565b610493565b60408051928352602083019190915201610134565b6101a860065481565b610162610222366004613d3b565b6105b3565b610162610235366004613b72565b6105cf565b6002805461024790613dc6565b80601f016020809104026020016040519081016040528092919081815260200182805461027390613dc6565b80156102c05780601f10610295576101008083540402835291602001916102c0565b820191906000526020600020905b8154815290600101906020018083116102a357829003601f168201915b505050505081565b6003805461024790613dc6565b6102dd61060d565b6102e7600061063a565b565b6001600160a01b03811660009081526009602052604090205460609060ff166103515760405162461bcd60e51b8152602060048201526015602482015274155cd95c881a5cc81b9bdd081858dd1a5d985d1959605a1b60448201526064015b60405180910390fd5b61035a8261068c565b92915050565b6001805461024790613dc6565b6001600160a01b03811660009081526009602052604090205460ff16156103d65760405162461bcd60e51b815260206004820152601960248201527f5573657220697320616c726561647920616374697661746564000000000000006044820152606401610348565b60005460ff166104395760405162461bcd60e51b815260206004820152602860248201527f53656564206d75737420626520736574206265666f72652061637469766174696044820152676e6720757365727360c01b6064820152608401610348565b6001600160a01b038116600081815260096020908152604091829020805460ff1916600117905590519182527fa80bfdc57bf882738a124b225520a84f1796f14d85d45b99687f5577ebe22512910160405180910390a150565b60008060008060006104db8888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061075292505050565b9194509250905060008160128111156104f6576104f6613e00565b1461051c578686898360405163356b2f0d60e01b81526004016103489493929190613e3f565b8260ff16600114158061053157508151602014155b1561055357868660405163198b15b960e31b8152600401610348929190613e95565b600061055e83613eb1565b905080158061057357506401000003d0198110155b1561059557878760405163198b15b960e31b8152600401610348929190613e95565b60006105a082610b0c565b919650909450505050505b935093915050565b6105bb61060d565b6105c88585858585610b24565b5050505050565b6105d761060d565b6001600160a01b03811661060157604051631e4fbdf760e01b815260006004820152602401610348565b61060a8161063a565b50565b6008546001600160a01b031633146102e75760405163118cdaa760e01b8152336004820152602401610348565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60005460609060ff166106b25760405163da4bbb2960e01b815260040160405180910390fd5b61035a600454600554600654600754600380546106ce90613dc6565b80601f01602080910402602001604051908101604052809291908181526020018280546106fa90613dc6565b80156107475780601f1061071c57610100808354040283529160200191610747565b820191906000526020600020905b81548152906001019060200180831161072a57829003601f168201915b505050505087610bd1565b60006060600080600080600061076788610c34565b92965090945092509050600081601281111561078557610785613e00565b146107aa57604080516000808252602082019092528296509650965050505050610b05565b6107b48985611050565b6107d95760408051600080825260208201909252600b96509650965050505050610b05565b82516000036108035760408051600080825260208201909252600c96509650965050505050610b05565b60108360008151811061081857610818613ed5565b016020015160f81c11156108475760408051600080825260208201909252600f96509650965050505050610b05565b6000600184516108579190613f01565b6001600160401b0381111561086e5761086e613bfe565b6040519080825280601f01601f191660200182016040528015610898576020820181803683370190505b50805190915060005b8181101561090b57856108b5826001613f14565b815181106108c5576108c5613ed5565b602001015160f81c60f81b8382815181106108e2576108e2613ed5565b60200101906001600160f81b031916908160001a905350610904600182613f14565b90506108a1565b506060610917836110e5565b94509050600084601281111561092f5761092f613e00565b1461095757604080516000808252602082019092528599509950995050505050505050610b05565b6002815110156109855760408051600080825260208201909252600d99509950995050505050505050610b05565b6028815111156109b35760408051600080825260208201909252600e99509950995050505050505050610b05565b856000815181106109c6576109c6613ed5565b016020015160f81c1580156109dd57508051601414155b80156109eb57508051602014155b15610a145760408051600080825260208201909252601099509950995050505050505050610b05565b85600081518110610a2757610a27613ed5565b016020015160f81c158015610a4e57506000856002811115610a4b57610a4b613e00565b14155b15610a775760408051600080825260208201909252601199509950995050505050505050610b05565b85600081518110610a8a57610a8a613ed5565b016020015160f81c15801590610ab257506001856002811115610aaf57610aaf613e00565b14155b15610adb5760408051600080825260208201909252601299509950995050505050505050610b05565b85600081518110610aee57610aee613ed5565b016020015160f81c99509750600096505050505050505b9250925092565b600061035a600283600060076401000003d019611be4565b6000610b2f82611d16565b90506003610b3d8282613f73565b50610b49818787610493565b600555600455610b5a818585610493565b6007556006556001610b6d868883614031565b506002610b7b848683614031565b506000805460ff191660011790556040517f123278a680a966680eaa7dc7f03997fbccbc36d6666b5b6f3388eb15fccf001f90610bc190889088908890889087906140f0565b60405180910390a1505050505050565b6060600080610be38989898988611e35565b9092509050610bf3600282614141565b600103610c0d57610c0a816401000003d019613f01565b90505b6000610c198383611e74565b509050610c268187611f90565b9a9950505050505050505050565b606080600080605a85511115610c69575050604080516000808252602082019081528183019092529250905060026007611049565b610c7285611fc6565b610c9b575050604080516000808252602082019081528183019092529250905060026003611049565b610ca485612041565b15610cce575050604080516000808252602082019081528183019092529250905060026004611049565b6000610cd986612127565b9050600060018251610ceb9190614155565b905060028251118015610d23575081600281518110610d0c57610d0c613ed5565b6020910101516001600160f81b031916603160f81b145b15610d3057506002610dae565b60018251610d3e9190614155565b90505b610d4c600182614155565b90506000811215610d80575050604080516000808252602082019081528183019092529450925060029150600a9050611049565b818181518110610d9257610d92613ed5565b0160200151603160f81b6001600160f81b031990911603610d41575b6001811215610de057505060408051600080825260208201908152818301909252945092506002915060099050611049565b8151610ded82600761417c565b1315610e1c57505060408051600080825260208201908152818301909252945092506002915060069050611049565b6000816001600160401b03811115610e3657610e36613bfe565b6040519080825280601f01601f191660200182016040528015610e60576020820181803683370190505b50905060005b82811015610ec657838181518110610e8057610e80613ed5565b602001015160f81c60f81b828281518110610e9d57610e9d613ed5565b60200101906001600160f81b031916908160001a905350610ebf600182613f14565b9050610e66565b50600080610ee085610ed986600161417c565b8751612287565b90925090506000816012811115610ef957610ef9613e00565b14610f285760408051600080825260208201908152818301909252995097506002965094506110499350505050565b6000610f348484612424565b90506002816002811115610f4a57610f4a613e00565b03610f7d575050604080516000808252602082019081528183019092529850965060029550600594506110499350505050565b600060068451610f8d9190613f01565b6001600160401b03811115610fa457610fa4613bfe565b6040519080825280601f01601f191660200182016040528015610fce576020820181803683370190505b50805190915060005b8181101561103757858181518110610ff157610ff1613ed5565b602001015160f81c60f81b83828151811061100e5761100e613ed5565b60200101906001600160f81b031916908160001a905350611030600182613f14565b9050610fd7565b50949a50985096506000955050505050505b9193509193565b600081518351146110635750600061035a565b825160005b818110156110da5783818151811061108257611082613ed5565b602001015160f81c60f81b6001600160f81b0319168582815181106110a9576110a9613ed5565b01602001516001600160f81b031916146110c85760009250505061035a565b6110d3600182613f14565b9050611068565b506001949350505050565b60606000806000600885516110fa9190614141565b90506000806008875161110d91906141a4565b9050600061111c8260086141b8565b9050600061112b8360056141b8565b9050846001036111735760005b6040519080825280601f01601f191660200182016040528015611162576020820181803683370190505b509960029950975050505050505050565b84600203611232578860018a5161118a9190613f01565b8151811061119a5761119a613ed5565b60209101015160f81c60031660000361121357886111b9836001613f14565b815181106111c9576111c9613ed5565b602001015160f81c60f81b60f81c60ff1660058a84815181106111ee576111ee613ed5565b0160200151611205929160f89190911c901b613f14565b60021c95506001935061161f565b5050604080516000815260208101909152976001975095505050505050565b84600303611241576000611138565b84600403611345578860018a516112589190613f01565b8151811061126857611268613ed5565b60209101015160f81c600f166000036112135788611287836003613f14565b8151811061129757611297613ed5565b016020015160f81c60058a6112ad856002613f14565b815181106112bd576112bd613ed5565b016020015160f81c901b600a8b6112d5866001613f14565b815181106112e5576112e5613ed5565b602001015160f81c60f81b60f81c60ff16901b600f8c868151811061130c5761130c613ed5565b0160200151611323929160f89190911c901b613f14565b61132d9190613f14565b6113379190613f14565b60041c95506002935061161f565b8460050361147b578860018a5161135c9190613f01565b8151811061136c5761136c613ed5565b60209101015160f81c600116600003611213578861138b836004613f14565b8151811061139b5761139b613ed5565b016020015160f81c60058a6113b1856003613f14565b815181106113c1576113c1613ed5565b016020015160f81c901b600a8b6113d9866002613f14565b815181106113e9576113e9613ed5565b016020015160f81c901b600f8c611401876001613f14565b8151811061141157611411613ed5565b602001015160f81c60f81b60f81c60ff16901b60148d878151811061143857611438613ed5565b016020015161144f929160f89190911c901b613f14565b6114599190613f14565b6114639190613f14565b61146d9190613f14565b60011c95506003935061161f565b8460060361148a576000611138565b8460070361161f578860018a516114a19190613f01565b815181106114b1576114b1613ed5565b60209101015160f81c60071660000361121357886114d0836006613f14565b815181106114e0576114e0613ed5565b016020015160f81c60058a6114f58583613f14565b8151811061150557611505613ed5565b016020015160f81c901b600a8b61151d866004613f14565b8151811061152d5761152d613ed5565b016020015160f81c901b600f8c611545876003613f14565b8151811061155557611555613ed5565b016020015160f81c901b60148d61156d886002613f14565b8151811061157d5761157d613ed5565b016020015160f81c901b60198e611595896001613f14565b815181106115a5576115a5613ed5565b602001015160f81c60f81b60f81c60ff16901b601e8f89815181106115cc576115cc613ed5565b01602001516115e3929160f89190911c901b613f14565b6115ed9190613f14565b6115f79190613f14565b6116019190613f14565b61160b9190613f14565b6116159190613f14565b60031c9550600493505b60008461162d8560056141b8565b6116379190613f14565b6001600160401b0381111561164e5761164e613bfe565b6040519080825280601f01601f191660200182016040528015611678576020820181803683370190505b50905060005b848110156119935760006116938260086141b8565b905060006116a28360056141b8565b9050600060238e84815181106116ba576116ba613ed5565b016020015160f81c901b9050601e8e6116d4856001613f14565b815181106116e4576116e4613ed5565b01602001516116fb9160f89190911c901b82613f14565b905060198e61170b856002613f14565b8151811061171b5761171b613ed5565b01602001516117329160f89190911c901b82613f14565b905060148e611742856003613f14565b8151811061175257611752613ed5565b01602001516117699160f89190911c901b82613f14565b9050600f8e611779856004613f14565b8151811061178957611789613ed5565b01602001516117a09160f89190911c901b82613f14565b9050600a8e6117b0856005613f14565b815181106117c0576117c0613ed5565b01602001516117d79160f89190911c901b82613f14565b905060058e6117e7856006613f14565b815181106117f7576117f7613ed5565b016020015161180e9160f89190911c901b82613f14565b90508d61181c846007613f14565b8151811061182c5761182c613ed5565b016020015161183e9060f81c82613f14565b9050602081901c60ff1660f81b85838151811061185d5761185d613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960e082901b168561188f846001613f14565b8151811061189f5761189f613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960e882901b16856118d1846002613f14565b815181106118e1576118e1613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960f082901b1685611913846003613f14565b8151811061192357611923613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960f882901b1685611955846004613f14565b8151811061196557611965613ed5565b60200101906001600160f81b031916908160001a90535050505060018161198c9190613f14565b905061167e565b50846001036119d1578660ff1660f81b8183815181106119b5576119b5613ed5565b60200101906001600160f81b031916908160001a905350611bd4565b84600203611a3857600887901c60ff1660f81b8183815181106119f6576119f6613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960f888901b1681611a28846001613f14565b815181106119b5576119b5613ed5565b84600303611ad157601087901c60ff1660f81b818381518110611a5d57611a5d613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960f088901b1681611a8f846001613f14565b81518110611a9f57611a9f613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960f888901b1681611a28846002613f14565b84600403611bd457601887901c60ff1660f81b818381518110611af657611af6613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960e888901b1681611b28846001613f14565b81518110611b3857611b38613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960f088901b1681611b6a846002613f14565b81518110611b7a57611b7a613ed5565b60200101906001600160f81b031916908160001a9053506001600160f81b031960f888901b1681611bac846003613f14565b81518110611bbc57611bbc613ed5565b60200101906001600160f81b031916908160001a9053505b9960009950975050505050505050565b60008560ff1660021480611bfb57508560ff166003145b611c615760405162461bcd60e51b815260206004820152603160248201527f456c6c697074696343757276653a696e6e76616c696420636f6d7072657373656044820152700c8408a8640e0ded2dce840e0e4caccd2f607b1b6064820152608401610348565b60008280611c7157611c7161412b565b8380611c7f57611c7f61412b565b858580611c8e57611c8e61412b565b888a09088480611ca057611ca061412b565b8580611cae57611cae61412b565b898a098909089050611cd7816004611cc7866001613f14565b611cd191906141a4565b85612597565b905060006002611cea60ff8a1684613f14565b611cf49190614141565b15611d0857611d038285613f01565b611d0a565b815b98975050505050505050565b60606000826003811115611d2c57611d2c613e00565b03611d4f575050604080518082019091526002815261626360f01b602082015290565b6001826003811115611d6357611d63613e00565b03611d865750506040805180820190915260028152613a3160f11b602082015290565b6002826003811115611d9a57611d9a613e00565b03611dbf5750506040805180820190915260048152631898dc9d60e21b602082015290565b6003826003811115611dd357611dd3613e00565b03611df657505060408051808201909152600281526139b160f11b602082015290565b60405162461bcd60e51b8152602060048201526014602482015273556e6b6e6f776e206e6574776f726b207479706560601b6044820152606401610348565b6000806000611e4588888661266e565b90506000611e5487878761266e565b9050611e648989898986866126fc565b9350935050509550959350505050565b600080600060027fe80fe1639c9ca050e3af1b39c143c63e429cbceb15d940fbb5c5a1f4af57c5e98087604051602001611ec1939291909283526020830191909152604082015260600190565b60408051601f1981840301815290829052611edb916141cf565b602060405180830381855afa158015611ef8573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f1b91906141eb565b9050600080611f6b7f79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f817987f483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b885612749565b91509150600080611f7e8989868661276c565b909750955050505050505b9250929050565b6060611fbf82600185604051602001611fab91815260200190565b604051602081830303815290604052612791565b9392505050565b8051600090815b81811015612037576021848281518110611fe957611fe9613ed5565b016020015160f81c10806120165750607e84828151811061200c5761200c613ed5565b016020015160f81c115b15612025575060009392505050565b612030600182613f14565b9050611fcd565b5060019392505050565b60008080805b845181101561211c57606185828151811061206457612064613ed5565b016020015160f81c108015906120945750607a85828151811061208957612089613ed5565b016020015160f81c11155b156120a257600192506120f0565b60418582815181106120b6576120b6613ed5565b016020015160f81c108015906120e65750605a8582815181106120db576120db613ed5565b016020015160f81c11155b156120f057600191505b8280156120fa5750815b1561210a57506001949350505050565b612115600182613f14565b9050612047565b506000949350505050565b6060600082516001600160401b0381111561214457612144613bfe565b6040519080825280601f01601f19166020018201604052801561216e576020820181803683370190505b50835190915060005b8181101561227e57604185828151811061219357612193613ed5565b016020015160f81c108015906121c35750605a8582815181106121b8576121b8613ed5565b016020015160f81c11155b15612225578481815181106121da576121da613ed5565b602001015160f81c60f81b60f81c60206121f49190614204565b60f81b83828151811061220957612209613ed5565b60200101906001600160f81b031916908160001a90535061226c565b84818151811061223757612237613ed5565b602001015160f81c60f81b83828151811061225457612254613ed5565b60200101906001600160f81b031916908160001a9053505b612277600182613f14565b9050612177565b50909392505050565b60606000806122968585613f01565b6001600160401b038111156122ad576122ad613bfe565b6040519080825280601f01601f1916602001820160405280156122d7576020820181803683370190505b509050845b848110156124175760008782815181106122f8576122f8613ed5565b602001015160f81c60f81b60f81c90506040518060a00160405280608081526020016142a960809139518160ff1610158061237257506040518060a00160405280608081526020016142a9608091398160ff168151811061235b5761235b613ed5565b6020910101516001600160f81b031916607f60f81b145b156123955750506040805160008152602081019091529250600891506105ab9050565b6040518060a00160405280608081526020016142a9608091398160ff16815181106123c2576123c2613ed5565b01602001516001600160f81b031916836123dc8985613f01565b815181106123ec576123ec613ed5565b60200101906001600160f81b031916908160001a9053506124109050600182613f14565b90506122dc565b5095600095509350505050565b600080612430846127f6565b90506000835182516124429190613f14565b6001600160401b0381111561245957612459613bfe565b604051908082528060200260200182016040528015612482578160200160208202803683370190505b50825190915060005b818110156124e5578381815181106124a5576124a5613ed5565b602001015160f81c60f81b60f81c60ff168382815181106124c8576124c8613ed5565b60209081029190910101526124de600182613f14565b905061248b565b50845160005b8181101561254c5786818151811061250557612505613ed5565b0160200151855160f89190911c90859061251f9084613f14565b8151811061252f5761252f613ed5565b6020908102919091010152612545600182613f14565b90506124eb565b50600061255884612963565b9050806001036125705760009550505050505061035a565b632bc830a381036125895760019550505050505061035a565b506002979650505050505050565b6000816000036125e95760405162461bcd60e51b815260206004820152601e60248201527f456c6c697074696343757276653a206d6f64756c7573206973207a65726f00006044820152606401610348565b836000036125f957506000611fbf565b8260000361260957506001611fbf565b6001600160ff1b5b801561266557838186161515870a85848509099150836002820486161515870a85848509099150836004820486161515870a85848509099150836008820486161515870a8584850909915060109004612611565b50949350505050565b60408051602081018590529081018390526001600160a01b0382166060820152600090819060029060800160408051601f19818403018152908290526126b3916141cf565b602060405180830381855afa1580156126d0573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906126f391906141eb565b95945050505050565b60008060008061270d8a8a88612749565b9150915060008061271f8a8a89612749565b915091506000806127328686868661276c565b90985096505050505050505b965096945050505050565b60008061276083868660006401000003d019612a3a565b91509150935093915050565b6000806127848686868660006401000003d019612a74565b9150915094509492505050565b6060600060ff8416156127a55760016127a8565b60005b905060006127b584612afb565b905060008560f81b826040516020016127cf92919061421d565b60405160208183030381529060405290506127eb878285612ffb565b979650505050505050565b60606000825183516128089190613f14565b612813906001613f14565b6001600160401b0381111561282a5761282a613bfe565b6040519080825280601f01601f191660200182016040528015612854576020820181803683370190505b50835190915060005b8181101561292b57600585828151811061287957612879613ed5565b602001015160f81c60f81b6001600160f81b031916901c8382815181106128a2576128a2613ed5565b60200101906001600160f81b031916908160001a9053508481815181106128cb576128cb613ed5565b01602001518551601f60f81b9091169084906128e79084613f14565b6128f2906001613f14565b8151811061290257612902613ed5565b60200101906001600160f81b031916908160001a905350612924600182613f14565b905061285d565b50600060f81b8285518151811061294457612944613ed5565b60200101906001600160f81b031916908160001a905350909392505050565b6040805160a081018252633b6a57b281526326508e6d6020820152631ea119fa91810191909152633d4233dd6060820152632a1462b36080820152815160009190600190835b81811015612a30576000601984901c90508682815181106129cc576129cc613ed5565b60200260200101516005856301ffffff16901b18935060005b6005811015612a26578082901c600116600103612a1e57858160058110612a0e57612a0e613ed5565b602002015163ffffffff16851894505b6001016129e5565b50506001016129a9565b5090949350505050565b6000806000806000612a518a8a8a60018b8b6131e3565b925092509250612a6383838389613265565b945094505050509550959350505050565b6000806000806000888b03612ac4578580612a9157612a9161412b565b888b08600003612aaa576000809450945050505061273e565b612ab88b8b60018a8a6132d4565b91945092509050612add565b612ad58b8b60018c8c60018c613477565b919450925090505b612ae983838389613265565b94509450505050965096945050505050565b6060600060058351612b0d91906141a4565b9050600060058451612b1f9190614141565b905060008082600103612b3757506002905080612b6e565b82600203612b4a57506004905080612b6e565b82600303612b5e5750600590506001612b6e565b82600403612b6e57506007905060035b600082612b7c8660086141b8565b612b869190613f14565b90506000816001600160401b03811115612ba257612ba2613bfe565b6040519080825280601f01601f191660200182016040528015612bcc576020820181803683370190505b50905060005b86811015612f01576000612be78260056141b8565b90506000612bf68360086141b8565b905060008b612c06846004613f14565b81518110612c1657612c16613ed5565b016020015160f81c8c612c2a856003613f14565b81518110612c3a57612c3a613ed5565b0160200151612c4e9060f81c6101006141b8565b8d612c5a866002613f14565b81518110612c6a57612c6a613ed5565b0160200151612c7f9060f81c620100006141b8565b8e612c8b876001613f14565b81518110612c9b57612c9b613ed5565b0160200151612cb19060f81c63010000006141b8565b8f8781518110612cc357612cc3613ed5565b0160200151612cda9060f81c6401000000006141b8565b612ce49190613f14565b612cee9190613f14565b612cf89190613f14565b612d029190613f14565b9050601f60f81b60f882901b1685612d1b846007613f14565b81518110612d2b57612d2b613ed5565b60200101906001600160f81b031916908160001a905350601f60f81b60f382901b1685612d59846006613f14565b81518110612d6957612d69613ed5565b60200101906001600160f81b031916908160001a905350601f60f81b60ee82901b1685612d97846005613f14565b81518110612da757612da7613ed5565b60200101906001600160f81b031916908160001a905350601f60f81b60e982901b1685612dd5846004613f14565b81518110612de557612de5613ed5565b60200101906001600160f81b031916908160001a905350601f60f81b60e482901b1685612e13846003613f14565b81518110612e2357612e23613ed5565b60200101906001600160f81b031916908160001a905350601f60f81b60df82901b1685612e51846002613f14565b81518110612e6157612e61613ed5565b60200101906001600160f81b031916908160001a905350601f60f81b60da82901b1685612e8f846001613f14565b81518110612e9f57612e9f613ed5565b60200101906001600160f81b031916908160001a905350602381901c601f1660f81b858381518110612ed357612ed3613ed5565b60200101906001600160f81b031916908160001a905350505050600181612efa9190613f14565b9050612bd2565b5083156127eb57875160009081612f198960056141b8565b90505b81811015612f60578a8181518110612f3657612f36613ed5565b0160200151612f4c9060f81c600885901b613f14565b9250612f59600182613f14565b9050612f1c565b5090841b9060005b86811015612fed576001612f7c8289613f01565b612f869190613f01565b612f919060056141b8565b83901c60f81b601f60f81b168482612faa8c60086141b8565b612fb49190613f14565b81518110612fc457612fc4613ed5565b60200101906001600160f81b031916908160001a905350612fe6600182613f14565b9050612f68565b505050979650505050505050565b6060600282600281111561301157613011613e00565b0361302f576040516305dc3f9d60e51b815260040160405180910390fd5b600061303c8585856137aa565b845190915060005b818110156130f6576040518060400160405280602081526020017f71707a7279397838676632747664773073336a6e35346b686365366d7561376c81525086828151811061309457613094613ed5565b0160200151815160f89190911c9081106130b0576130b0613ed5565b602001015160f81c60f81b8682815181106130cd576130cd613ed5565b60200101906001600160f81b031916908160001a9053506130ef600182613f14565b9050613044565b5060005b60068110156131ad576040518060400160405280602081526020017f71707a7279397838676632747664773073336a6e35346b686365366d7561376c81525083828151811061314b5761314b613ed5565b0160200151815160f89190911c90811061316757613167613ed5565b602001015160f81c60f81b83828151811061318457613184613ed5565b60200101906001600160f81b031916908160001a9053506131a6600182613f14565b90506130fa565b506040516131c9908790603160f81b908890869060200161424e565b604051602081830303815290604052925050509392505050565b6000806000886000036131fd575086915085905084613259565b8860008060015b831561325057600184161561322a576132228383838f8f8f8e613477565b919450925090505b6132356002856141a4565b93506132448c8c8c8c8c6132d4565b919d509b509950613204565b91955093509150505b96509650969350505050565b60008060006132748585613a88565b9050600084806132865761328661412b565b82830990506000858061329b5761329b61412b565b828a099050600086806132b0576132b061412b565b87806132be576132be61412b565b8486098a09919a91995090975050505050505050565b6000806000856000036132ee57508691508590508461346c565b600084806132fe576132fe61412b565b898a099050600085806133135761331361412b565b898a099050600086806133285761332861412b565b898a0990506000878061333d5761333d61412b565b888061334b5761334b61412b565b848e096004099050600088806133635761336361412b565b89806133715761337161412b565b8a8061337f5761337f61412b565b8586098c098a806133925761339261412b565b8760030908905088806133a7576133a761412b565b89806133b5576133b561412b565b8384086133c2908b613f01565b8a806133d0576133d061412b565b83840908945088806133e4576133e461412b565b89806133f2576133f261412b565b8a806134005761340061412b565b868709600809613410908b613f01565b8a8061341e5761341e61412b565b8b8061342c5761342c61412b565b613436898e613f01565b86088409089350888061344b5761344b61412b565b89806134595761345961412b565b8c8e096002099497509295509293505050505b955095509592505050565b6000808089158015613487575088155b1561349957508591508490508361379d565b861580156134a5575085155b156134b757508891508790508661379d565b6134bf613b54565b84806134cd576134cd61412b565b898a09815284806134e0576134e061412b565b81518a09602082015284806134f7576134f761412b565b8687096040820152848061350d5761350d61412b565b60408201518709606082015260408051608081019091528086806135335761353361412b565b60408401518e098152602001868061354d5761354d61412b565b60608401518d09815260200186806135675761356761412b565b83518b098152602001868061357e5761357e61412b565b60208401518a099052604081015181519192501415806135a657506060810151602082015114155b6135f25760405162461bcd60e51b815260206004820152601e60248201527f557365206a6163446f75626c652066756e6374696f6e20696e737465616400006044820152606401610348565b6135fa613b54565b85806136085761360861412b565b82516136149088613f01565b6040840151088152858061362a5761362a61412b565b60208301516136399088613f01565b606084015108602082015285806136525761365261412b565b81518009604082015285806136695761366961412b565b81516040830151096060820152600086806136865761368661412b565b60608301516136959089613f01565b88806136a3576136a361412b565b6020850151800908905086806136bb576136bb61412b565b87806136c9576136c961412b565b88806136d7576136d761412b565b60408501518651096002096136ec9089613f01565b82089050600087806137005761370061412b565b888061370e5761370e61412b565b613718848b613f01565b8a806137265761372661412b565b604087015188510908602085015109905087806137455761374561412b565b88806137535761375361412b565b6060850151602087015109613768908a613f01565b820890506000888061377c5761377c61412b565b898061378a5761378a61412b565b8b8f098551099297509095509093505050505b9750975097945050505050565b6060600060018360028111156137c2576137c2613e00565b146137ce5760016137d4565b632bc830a35b905060006137e1866127f6565b90506000855182516137f39190613f14565b6137fe906006613f14565b6001600160401b0381111561381557613815613bfe565b60405190808252806020026020018201604052801561383e578160200160208202803683370190505b50825190915060005b818110156138a15783818151811061386157613861613ed5565b602001015160f81c60f81b60f81c60ff1683828151811061388457613884613ed5565b602090810291909101015261389a600182613f14565b9050613847565b50865160005b81811015613908578881815181106138c1576138c1613ed5565b0160200151855160f89190911c9085906138db9084613f14565b815181106138eb576138eb613ed5565b6020908102919091010152613901600182613f14565b90506138a7565b5060008561391585612963565b604080516006808252818301909252919092189250600091602082018180368337019050509050601982901c601f1660f81b8160008151811061395a5761395a613ed5565b60200101906001600160f81b031916908160001a905350601482901c601f1660f81b8160018151811061398f5761398f613ed5565b60200101906001600160f81b031916908160001a905350600f82901c601f1660f81b816002815181106139c4576139c4613ed5565b60200101906001600160f81b031916908160001a905350600a82901c601f1660f81b816003815181106139f9576139f9613ed5565b60200101906001600160f81b031916908160001a905350600582901c601f1660f81b81600481518110613a2e57613a2e613ed5565b60200101906001600160f81b031916908160001a905350600082901c601f1660f81b81600581518110613a6357613a63613ed5565b60200101906001600160f81b031916908160001a9053509a9950505050505050505050565b60008215801590613a995750818314155b8015613aa457508115155b613ae15760405162461bcd60e51b815260206004820152600e60248201526d24b73b30b634b210373ab6b132b960911b6044820152606401610348565b6000600183825b8615613b4957613af887836141a4565b9050828680613b0957613b0961412b565b8780613b1757613b1761412b565b858409613b249089613f01565b8608909450925086613b3681836141b8565b613b409084613f01565b97509150613ae8565b509195945050505050565b60405180608001604052806004906020820280368337509192915050565b600060208284031215613b8457600080fd5b81356001600160a01b0381168114611fbf57600080fd5b60005b83811015613bb6578181015183820152602001613b9e565b50506000910152565b60008151808452613bd7816020860160208601613b9b565b601f01601f19169290920160200192915050565b602081526000611fbf6020830184613bbf565b634e487b7160e01b600052604160045260246000fd5b60008083601f840112613c2657600080fd5b5081356001600160401b03811115613c3d57600080fd5b602083019150836020828501011115611f8957600080fd5b600080600060408486031215613c6a57600080fd5b83356001600160401b03811115613c8057600080fd5b8401601f81018613613c9157600080fd5b80356001600160401b03811115613caa57613caa613bfe565b604051601f8201601f19908116603f011681016001600160401b0381118282101715613cd857613cd8613bfe565b604052818152828201602001881015613cf057600080fd5b8160208401602083013760006020838301015280955050505060208401356001600160401b03811115613d2257600080fd5b613d2e86828701613c14565b9497909650939450505050565b600080600080600060608688031215613d5357600080fd5b85356001600160401b03811115613d6957600080fd5b613d7588828901613c14565b90965094505060208601356001600160401b03811115613d9457600080fd5b613da088828901613c14565b909450925050604086013560048110613db857600080fd5b809150509295509295909350565b600181811c90821680613dda57607f821691505b602082108103613dfa57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b606081526000613e53606083018688613e16565b8281036020840152613e658186613bbf565b91505060138310613e8657634e487b7160e01b600052602160045260246000fd5b82604083015295945050505050565b602081526000613ea9602083018486613e16565b949350505050565b80516020808301519190811015613dfa5760001960209190910360031b1b16919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561035a5761035a613eeb565b8082018082111561035a5761035a613eeb565b601f821115613f6e57806000526020600020601f840160051c81016020851015613f4e5750805b601f840160051c820191505b818110156105c85760008155600101613f5a565b505050565b81516001600160401b03811115613f8c57613f8c613bfe565b613fa081613f9a8454613dc6565b84613f27565b6020601f821160018114613fd45760008315613fbc5750848201515b600019600385901b1c1916600184901b1784556105c8565b600084815260208120601f198516915b828110156140045787850151825560209485019460019092019101613fe4565b50848210156140225786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6001600160401b0383111561404857614048613bfe565b61405c836140568354613dc6565b83613f27565b6000601f84116001811461409057600085156140785750838201355b600019600387901b1c1916600186901b1783556105c8565b600083815260209020601f19861690835b828110156140c157868501358255602094850194600190920191016140a1565b50868210156140de5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b606081526000614104606083018789613e16565b8281036020840152614117818688613e16565b90508281036040840152611d0a8185613bbf565b634e487b7160e01b600052601260045260246000fd5b6000826141505761415061412b565b500690565b818103600083128015838313168383128216171561417557614175613eeb565b5092915050565b808201828112600083128015821682158216171561419c5761419c613eeb565b505092915050565b6000826141b3576141b361412b565b500490565b808202811582820484141761035a5761035a613eeb565b600082516141e1818460208701613b9b565b9190910192915050565b6000602082840312156141fd57600080fd5b5051919050565b60ff818116838216019081111561035a5761035a613eeb565b6001600160f81b0319831681528151600090614240816001850160208701613b9b565b919091016001019392505050565b60008551614260818460208a01613b9b565b6001600160f81b031986169083019081528451614284816001840160208901613b9b565b845191019061429a816001840160208801613b9b565b01600101969550505050505056fe7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f0f7f0a1115141a1e07057f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f1d7f180d190908177f12161f1b137f010003100b1c0c0e0604027f7f7f7f7fa264697066735822122046f43df8a37a5f610c206448722acc3ddccec70f8cdb1a9b38a427dadfbf904664736f6c634300081b0033