1 tx
2 calls
constructor
constructor()
functions
ArbDbAddr
viewfunction ArbDbAddr() view returns (address)
BatchGetOrderArbSummary
viewfunction BatchGetOrderArbSummary(uint256[] _order_ids) view returns (tuple[])
CanInitiateArb
viewfunction CanInitiateArb(uint256 _order_id) view returns (bool can_initiate, uint256 error_code)
decodeArbData
purefunction decodeArbData(bytes data) pure returns (tuple)
decodeOrderArbStatus
purefunction decodeOrderArbStatus(bytes data) pure returns (tuple)
GetAllArbIdsForOrder
viewfunction GetAllArbIdsForOrder(uint256 _order_id) view returns (uint256[] arb_ids)
GetAllLogIdsForArb
viewfunction GetAllLogIdsForArb(uint256 _arb_id) view returns (uint256[] log_ids)
GetArbCompleteInfo
viewfunction GetArbCompleteInfo(uint256 _order_id, uint256 _arb_id, bool _include_all_data) view returns (tuple)
GetArbLogDataList
viewfunction GetArbLogDataList(uint256 _order_id, uint256 _arb_id, uint256 _page, uint256 _pageSize, bool _IsDesc) view returns (tuple)
GetOrderArbHistory
viewfunction GetOrderArbHistory(uint256 _order_id, uint256 _page, uint256 _pageSize, bool _IsDesc) view returns (tuple)
GetOrderArbSummary
viewfunction GetOrderArbSummary(uint256 _order_id) view returns (tuple)
GetOrderDetail
viewfunction GetOrderDetail(uint256 _order_id) view returns (tuple order_detail, tuple order_token_info)
GetOrderStatistics
viewfunction GetOrderStatistics(uint256 _order_id) view returns (uint256 total_arbs, uint256 completed_arbs, uint256 active_arbs, uint256 total_logs, uint256 total_fees_paid, address primary_fee_token)
GetSystemConfig
viewfunction GetSystemConfig() view returns (tuple)
GetTokenInfo
viewfunction GetTokenInfo(address _token_addr) view returns (tuple order_token_info)
GetUserArbtr
viewfunction GetUserArbtr(address _user, uint256 _page, uint256 _pageSize) view returns (uint256[] order_ids, tuple[] arb_infos)
OrderContractAddr
viewfunction OrderContractAddr() view returns (address)
owner
viewfunction owner() view returns (address)
parseArbData
purefunction parseArbData(bytes data) pure returns (tuple)
parseArbLogDataComplete
purefunction parseArbLogDataComplete(bytes data) pure returns (tuple)
SetAddr
nonpayablefunction SetAddr(address _ArbDbAddr, address _OrderContractAddr)
events
No events.
errors
No errors.
creation bytecode
0x608060405234801561000f575f80fd5b50600280546001600160a01b03191633179055615ee480620000305f395ff3fe608060405234801561000f575f80fd5b5060043610610132575f3560e01c80635f992d57116100b45780639d47e5e3116100795780639d47e5e314610422578063cae4f4d514610442578063d6d025cc14610462578063e39b60ab14610475578063e5b5bd5c14610488578063fd46b5a4146104a8575f80fd5b80635f992d571461038f5780638bce8da3146103af5780638da5cb5b146103cf578063937bf141146103e257806399f41dc014610402575f80fd5b806346e1928d116100fa57806346e1928d146102d457806348edd5c2146102e6578063497ae2531461030757806349a491a3146103505780634c9083d61461037a575f80fd5b806303e2c41e14610136578063108ed80a1461024857806311516fe21461027357806316b062731461029457806342ac4ca8146102b4575b5f80fd5b61013e6104c8565b60405161023f9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526101e08083015190820152610200808301519082015261022080830151908201526102408083015190820152610260808301519082015261028080830151908201526102a080830151908201526102c091820151918101919091526102e00190565b60405180910390f35b60015461025b906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b610286610281366004614a7f565b610eae565b60405161023f929190614bf8565b6102a76102a2366004614c2c565b610edd565b60405161023f9190614d67565b6102c76102c2366004614e91565b611339565b60405161023f9190614fc0565b5f5461025b906001600160a01b031681565b6102f96102f4366004614fe6565b611425565b60405161023f929190615372565b61031a610315366004614a7f565b611a7f565b60408051968752602087019590955293850192909252606084015260808301526001600160a01b031660a082015260c00161023f565b61036361035e366004614a7f565b611cf0565b60408051921515835260208301919091520161023f565b61038d610388366004615396565b611f69565b005b6103a261039d366004614e91565b611fdd565b60405161023f91906153cd565b6103c26103bd366004614a7f565b611fff565b60405161023f9190615406565b60025461025b906001600160a01b031681565b6103f56103f0366004615418565b612159565b60405161023f9190615433565b610415610410366004615445565b61216a565b60405161023f9190615483565b610435610430366004614e91565b6124e3565b60405161023f919061549e565b6104556104503660046154b0565b61260e565b60405161023f91906154e6565b6102c7610470366004614e91565b61275e565b6103c2610483366004614a7f565b61289f565b61049b610496366004614a7f565b6129f0565b60405161023f91906155c1565b6104bb6104b63660046155d3565b612eaa565b60405161023f9190615641565b6104d0614637565b6104d8614637565b5f8054906101000a90046001600160a01b03166001600160a01b031663b79dca066040518163ffffffff1660e01b8152600401602060405180830381865afa158015610526573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054a91906156a3565b81525f546040805163431271eb60e01b815290516001600160a01b039092169163431271eb916004808201926020929091908290030181865afa158015610593573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b791906156a3565b6020808301919091525f54604080516305d23aab60e31b815290516001600160a01b0390921692632e91d558926004808401938290030181865afa158015610601573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061062591906156a3565b6040808301919091525f5481516355badf8760e11b815291516001600160a01b039091169163ab75bf0e9160048083019260209291908290030181865afa158015610672573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069691906156a3565b60608201525f5460408051633467687760e11b815290516001600160a01b03909216916368ced0ee916004808201926020929091908290030181865afa1580156106e2573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061070691906156a3565b60808201525f546040805163ef02b7e560e01b815290516001600160a01b039092169163ef02b7e5916004808201926020929091908290030181865afa158015610752573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061077691906156a3565b60a08201525f5460408051636d02af8560e01b815290516001600160a01b0390921691636d02af85916004808201926020929091908290030181865afa1580156107c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e691906156a3565b60c08201525f54604080516309f04dff60e01b815290516001600160a01b03909216916309f04dff916004808201926020929091908290030181865afa158015610832573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085691906156a3565b60e08201525f546040805163efd4620760e01b815290516001600160a01b039092169163efd46207916004808201926020929091908290030181865afa1580156108a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c691906156a3565b6101008201525f546040805163169fa0df60e11b815290516001600160a01b0390921691632d3f41be916004808201926020929091908290030181865afa158015610913573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061093791906156a3565b6101208201525f54604080516303c7fc4760e11b815290516001600160a01b039092169163078ff88e916004808201926020929091908290030181865afa158015610984573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109a891906156a3565b6101408201525f5460408051630156a1f560e71b815290516001600160a01b039092169163ab50fa80916004808201926020929091908290030181865afa1580156109f5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a1991906156a3565b6101608201525f546040805163d048940f60e01b815290516001600160a01b039092169163d048940f916004808201926020929091908290030181865afa158015610a66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8a91906156a3565b6101808201525f5460408051633307efc960e11b815290516001600160a01b039092169163660fdf92916004808201926020929091908290030181865afa158015610ad7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610afb91906156a3565b6101a08201525f54604080516330a84f5160e01b815290516001600160a01b03909216916330a84f51916004808201926020929091908290030181865afa158015610b48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6c91906156a3565b6101c08201525f546040805163cb9ea33760e01b815290516001600160a01b039092169163cb9ea337916004808201926020929091908290030181865afa158015610bb9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bdd91906156a3565b6101e08201525f5460408051625db74960e11b815290516001600160a01b039092169162bb6e92916004808201926020929091908290030181865afa158015610c28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4c91906156a3565b6102008201525f54604080516357eb05f360e01b815290516001600160a01b03909216916357eb05f3916004808201926020929091908290030181865afa158015610c99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbd91906156a3565b6102208201525f546040805163f9eb2c7560e01b815290516001600160a01b039092169163f9eb2c75916004808201926020929091908290030181865afa158015610d0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d2e91906156a3565b6102408201525f546040805163130ae74560e31b815290516001600160a01b03909216916398573a28916004808201926020929091908290030181865afa158015610d7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9f91906156a3565b6102608201525f546040805163049ba6dd60e21b815290516001926001600160a01b03169163126e9b749160048083019260209291908290030181865afa158015610dec573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1091906156a3565b610e1a91906156ce565b6102808201525f54604080516307337c2b60e21b815290516001926001600160a01b031691631ccdf0ac9160048083019260209291908290030181865afa158015610e67573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e8b91906156a3565b610e9591906156ce565b6102a0820152610ea3612fb6565b6102c0820152919050565b610eb66146ce565b610ebe614754565b610ec783613082565b9150610ed68260c001516131b4565b9050915091565b610f0d6040518060a00160405280606081526020015f81526020015f81526020015f81526020015f151581525090565b848615801590610f1b575085155b15610f8d575f546040516321f0edd560e01b8152600481018990526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015610f66573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f8a91906156a3565b90505b805f03610ff157604080515f60a0820181815260c0830190935290918291610fcb565b610fb861477f565b815260200190600190039081610fb05790505b5081526020015f81526020018681526020018581526020015f1515815250915050611330565b5f8054604051620155f160e71b8152600481018490526001600160a01b039091169062aaf88090602401602060405180830381865afa158015611036573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061105a91906156a3565b9050805f036110c157604080515f60a0820181815260c083019093529091829161109a565b61108761477f565b81526020019060019003908161107f5790505b5081526020015f81526020018781526020018681526020015f151581525092505050611330565b5f6110cc86886156e1565b90505f80876001600160401b038111156110e8576110e8614db8565b60405190808252806020026020018201604052801561112157816020015b61110e61477f565b8152602001906001900390816111065790505b5090505f5b888110801561113457508883105b15611254575f881561117e578561114b83876156f8565b106111565750611254565b81856111636001896156ce565b61116d91906156ce565b61117791906156ce565b9050611197565b61118882866156f8565b90508581106111975750611254565b5f805460405163a910c62360e01b8152600481018a9052602481018490526001600160a01b039091169063a910c62390604401602060405180830381865afa1580156111e5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120991906156a3565b90506112148161335d565b8486815181106112265761122661570b565b6020026020010181905250848061123c9061571f565b9550505050808061124c9061571f565b915050611126565b505f826001600160401b0381111561126e5761126e614db8565b6040519080825280602002602001820160405280156112a757816020015b61129461477f565b81526020019060019003908161128c5790505b5090505f5b838110156112f3578281815181106112c6576112c661570b565b60200260200101518282815181106112e0576112e061570b565b60209081029190910101526001016112ac565b506040518060a001604052808281526020018681526020018b81526020018a815260200186858761132491906156f8565b10905296505050505050505b95945050505050565b6113416147d0565b6101008251101561138a5760405162461bcd60e51b815260206004820152600e60248201526d11185d18481d1bdbc81cda1bdc9d60921b60448201526064015b60405180910390fd5b6113926147d0565b60208301805191506020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e083015261012081015161012083015261014081015161014083015250604051806040016040528060018152602001603160f81b81525081610100018190525080915050919050565b6060805f60015f9054906101000a90046001600160a01b03166001600160a01b0316637380904d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611479573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061149d91906156a3565b90505f816001600160401b038111156114b8576114b8614db8565b6040519080825280602002602001820160405280156114e1578160200160208202803683370190505b5090505f60015b83811015611780575f805460405163ee6eb83d60e01b8152600481018490526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015611537573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061155b91906156a3565b9050805f0361156a5750611778565b5f805b82811015611742575f80546040516302cf91ab60e41b815260048101879052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa1580156115c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115e791906156a3565b5f80546040516251971f60e01b81526004810184905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611630573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526116579190810190615789565b6001546040516371dba4dd60e11b8152600481018990529192505f9182916001600160a01b03169063e3b749ba9060240160c060405180830381865afa1580156116a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c79190615876565b50509350935050508f6001600160a01b031683602001516001600160a01b0316148061170457508f6001600160a01b0316826001600160a01b0316145b8061172057508f6001600160a01b0316816001600160a01b0316145b15611732576001955050505050611742565b50506001909201915061156d9050565b508015611775578285858151811061175c5761175c61570b565b6020908102919091010152836117718161571f565b9450505b50505b6001016114e8565b505f61178c87896156e1565b90505f876001600160401b038111156117a7576117a7614db8565b6040519080825280602002602001820160405280156117d0578160200160208202803683370190505b509650876001600160401b038111156117eb576117eb614db8565b60405190808252806020026020018201604052801561182457816020015b611811614838565b8152602001906001900390816118095790505b5095505f5b888110801561183757508882105b15611951575f61184782856156f8565b90508481106118565750611951565b5f8682815181106118695761186961570b565b60209081029190910101515f80546040516321f0edd560e01b81526004810184905292935090916001600160a01b03909116906321f0edd590602401602060405180830381865afa1580156118c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118e491906156a3565b9050818b86815181106118f9576118f961570b565b60200260200101818152505061191082825f6134b0565b8a86815181106119225761192261570b565b602002602001018190525084806119389061571f565b95505050505080806119499061571f565b915050611829565b505f816001600160401b0381111561196b5761196b614db8565b604051908082528060200260200182016040528015611994578160200160208202803683370190505b5090505f826001600160401b038111156119b0576119b0614db8565b6040519080825280602002602001820160405280156119e957816020015b6119d6614838565b8152602001906001900390816119ce5790505b5090505f5b83811015611a6d57898181518110611a0857611a0861570b565b6020026020010151838281518110611a2257611a2261570b565b602002602001018181525050888181518110611a4057611a4061570b565b6020026020010151828281518110611a5a57611a5a61570b565b60209081029190910101526001016119ee565b50909b909a5098505050505050505050565b5f805460405163ee6eb83d60e01b815260048101849052829182918291829182916001600160a01b03169063ee6eb83d90602401602060405180830381865afa158015611ace573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611af291906156a3565b9550855f03611b1157505f945084935083925082915081905080611ce7565b5f805f5b88811015611ce0575f80546040516302cf91ab60e41b8152600481018d9052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015611b6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b8f91906156a3565b5f80546040516251971f60e01b81526004810184905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611bd8573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611bff9190810190615789565b90508060a001518160800151611c1591906156f8565b611c1f90866156f8565b94506001600160a01b038416611c37578060e0015193505b61012081015115611c545789611c4c8161571f565b9a5050611c62565b88611c5e8161571f565b9950505b5f54604051620155f160e71b8152600481018490526001600160a01b039091169062aaf88090602401602060405180830381865afa158015611ca6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cca91906156a3565b611cd490896156f8565b97505050600101611b15565b5090925090505b91939550919395565b5f805460405163ee6eb83d60e01b815260048101849052829182916001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015611d3b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d5f91906156a3565b9050805f03611d745750600193849350915050565b5f80546040516321f0edd560e01b8152600481018790526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015611dbb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ddf91906156a3565b90505f611deb86613b44565b5f80546040516251971f60e01b81526004810186905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611e34573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e5b9190810190615789565b90508061012001515f14611e7857505f9660029650945050505050565b81602001516001148015611e9157508160400151600214155b15611ea557505f9660039650945050505050565b8160400151600203611f5a575f8054604051637adc52f760e01b8152600481018a90526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015611ef8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f1c91906158db565b905080602001518360800151611f3291906156f8565b421015611f4957505f976004975095505050505050565b506001976005975095505050505050565b506001965f9650945050505050565b6002546001600160a01b03163314611fb05760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b6044820152606401611381565b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055565b611fe5614918565b81806020019051810190611ff991906159ab565b92915050565b5f805460405163ee6eb83d60e01b815260048101849052606092916001600160a01b03169063ee6eb83d90602401602060405180830381865afa158015612048573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061206c91906156a3565b9050806001600160401b0381111561208657612086614db8565b6040519080825280602002602001820160405280156120af578160200160208202803683370190505b5091505f5b81811015612152575f546040516302cf91ab60e41b815260048101869052602481018390526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015612109573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212d91906156a3565b83828151811061213f5761213f61570b565b60209081029190910101526001016120b4565b5050919050565b612161614754565b611ff9826131b4565b61219a6040518060a00160405280606081526020015f81526020015f81526020015f81526020015f151581525090565b5f805460405163ee6eb83d60e01b8152600481018890526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa1580156121e1573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061220591906156a3565b9050805f0361226b57604080515f60a0820181815260c0830190935290918291612245565b612232614838565b81526020019060019003908161222a5790505b5081526020015f81526020018681526020018581526020015f15158152509150506124db565b5f61227685876156e1565b90505f80866001600160401b0381111561229257612292614db8565b6040519080825280602002602001820160405280156122cb57816020015b6122b8614838565b8152602001906001900390816122b05790505b5090505f5b87811080156122de57508783105b15612400575f871561232857856122f583876156f8565b106123005750612400565b818561230d6001896156ce565b61231791906156ce565b61232191906156ce565b9050612341565b61233282866156f8565b90508581106123415750612400565b5f80546040516302cf91ab60e41b8152600481018e9052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa15801561238f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123b391906156a3565b90506123c08c825f6134b0565b8486815181106123d2576123d261570b565b602002602001018190525084806123e89061571f565b955050505080806123f89061571f565b9150506122d0565b505f826001600160401b0381111561241a5761241a614db8565b60405190808252806020026020018201604052801561245357816020015b612440614838565b8152602001906001900390816124385790505b5090505f5b8381101561249f578281815181106124725761247261570b565b602002602001015182828151811061248c5761248c61570b565b6020908102919091010152600101612458565b506040518060a001604052808281526020018681526020018a81526020018981526020018685876124d091906156f8565b109052955050505050505b949350505050565b6124eb61477f565b6124f3614942565b602083015f5b600b811015612516576020810282810151908401526001016124f9565b505060408051602080820183525f80835283519182019093528281529091836008602002015111801561254e57508451610100840151105b1561256857612565858460085b6020020151613c8f565b91505b6101208301511580159061258157508451610120840151105b15612595576125928584600961255b565b90505b604080516101608101825284518152602080860151908201528482015191810191909152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e08085015190820152610100810192909252610120820152610140918201519181019190915292915050565b612616614838565b83838115801561262557505f85115b156126a2575f80546040516251971f60e01b8152600481018890526001600160a01b03909116906251971f906024015f60405180830381865afa15801561266e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526126959190810190615789565b5192508591506127389050565b851561272757845f03612720575f546040516321f0edd560e01b8152600481018890526001600160a01b03909116906321f0edd590602401602060405180830381865afa1580156126f5573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061271991906156a3565b9050612738565b5083612738565b61272f613d93565b92505050612757565b805f036127475761272f613d93565b6127528282866134b0565b925050505b9392505050565b6127666147d0565b61276e614961565b602083015f5b600c81101561279157602081028281015190840152600101612774565b505060408051602081019091525f8152610100820151158015906127ba57508351610100830151105b156127ce576127cb8483600861255b565b90505b6040805161018081018252835181526020808501516001600160a01b0316908201528382015191810191909152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e0810183600760200201516001600160a01b03168152602001828152602001836009600c81106128565761285661570b565b6020020151815260200183600a600c81106128735761287361570b565b6020020151815260200183600b600c81106128905761289061570b565b60200201519052949350505050565b5f8054604051620155f160e71b815260048101849052606092916001600160a01b03169062aaf88090602401602060405180830381865afa1580156128e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290a91906156a3565b9050806001600160401b0381111561292457612924614db8565b60405190808252806020026020018201604052801561294d578160200160208202803683370190505b5091505f5b81811015612152575f5460405163a910c62360e01b815260048101869052602481018390526001600160a01b039091169063a910c62390604401602060405180830381865afa1580156129a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129cb91906156a3565b8382815181106129dd576129dd61570b565b6020908102919091010152600101612952565b6129f8614980565b612a00614980565b8281525f805460405163ee6eb83d60e01b8152600481018690526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015612a4a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a6e91906156a3565b6040830181905280151560208401819052909150612aa15750604080515f81526020810190915261014082015292915050565b806001600160401b03811115612ab957612ab9614db8565b604051908082528060200260200182016040528015612ae2578160200160208202803683370190505b506101408301525f5b81811015612b8e575f546040516302cf91ab60e41b815260048101879052602481018390526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015612b40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b6491906156a3565b8361014001518281518110612b7b57612b7b61570b565b6020908102919091010152600101612aeb565b505f80546040516321f0edd560e01b8152600481018790526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015612bd6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bfa91906156a3565b606084018190529050612c0c85613b44565b60808401819052612c1e908690613e3a565b60a08401525f80805b84811015612d04575f805461014088015180516001600160a01b03909216916251971f919085908110612c5c57612c5c61570b565b60200260200101516040518263ffffffff1660e01b8152600401612c8291815260200190565b5f60405180830381865afa158015612c9c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612cc39190810190615789565b90508060a001518160800151612cd991906156f8565b612ce390856156f8565b93506001600160a01b038316612cfb578060e0015192505b50600101612c27565b5060c085018290526001600160a01b0381811660e08701525f80546040516251971f60e01b815260048101879052919216906251971f906024015f60405180830381865afa158015612d58573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612d7f9190810190615789565b6001546040516371dba4dd60e11b8152600481018b90529192505f916001600160a01b039091169063e3b749ba9060240160c060405180830381865afa158015612dcb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612def9190615876565b50505060208501516001600160a01b03908116818316146101008c01525f805460405163d0c239b760e01b815293965090945016915063d0c239b790612e3d90899060040190815260200190565b602060405180830381865afa158015612e58573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e7c91906156a3565b90508015612e9c575f612e8e8261335d565b6060015115156101208a0152505b509598975050505050505050565b60605f826001600160401b03811115612ec557612ec5614db8565b604051908082528060200260200182016040528015612efe57816020015b612eeb614980565b815260200190600190039081612ee35790505b5090505f5b83811015612fae573063e5b5bd5c868684818110612f2357612f2361570b565b905060200201356040518263ffffffff1660e01b8152600401612f4891815260200190565b5f60405180830381865afa158015612f62573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612f899190810190615b08565b828281518110612f9b57612f9b61570b565b6020908102919091010152600101612f03565b509392505050565b5f8060015f9054906101000a90046001600160a01b03166001600160a01b0316637380904d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613008573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061302c91906156a3565b90505f60015b8281101561307b575f61304482613b44565b90508060200151600114801561305f57508060400151600214155b15613072578261306e8161571f565b9350505b50600101613032565b5092915050565b61308a6146ce565b6130926146ce565b8281526001546040516316c45f7360e31b8152600481018590526001600160a01b039091169063b622fb98906024015f60405180830381865afa9250505080156130fd57506040513d5f823e601f3d908101601f191682016040526130fa9190810190615c08565b60015b15611ff957805160208084019190915281015160408084019190915281015160608084019190915281015160808084019190915281015160a0808401919091528101516001600160a01b0390811660c080850191909152820151811660e080850191909152820151811661010080850191909152820151610120808501919091528201516101408085019190915282015116610160808401919091528101516101808084019190915201516101a082015292915050565b6131bc614754565b6131c4614754565b6001600160a01b03831680825261320157604080518082018252600381526221272160e91b60208083019190915283015260129082015292915050565b6001600160a01b0383167355d398326f99059ff775485246999027b3197955036132525760408051808201825260048152631554d11560e21b60208083019190915283015260129082015292915050565b826001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa9250505080156132af57506040513d5f823e601f3d908101601f191682016040526132ac9190810190615d0c565b60015b6132e057604051806040016040528060078152602001662aa725a727aba760c91b81525081602001819052506132e6565b60208201525b826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613340575060408051601f3d908101601f1916820190925261333d91810190615d3d565b60015b61334f575f6040820152611ff9565b60ff16604082015292915050565b61336561477f565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b0316633cd45a6360e01b1790525f805492517f3cd45a63be193ec81bf5621674b01ee313894a608701dd3c70febe2540a485349382916001600160a01b03909116906133dc908590615d5d565b5f60405180830381855afa9150503d805f8114613414576040519150601f19603f3d011682016040523d82523d5f602084013e613419565b606091505b509150915081801561342e57506101e0815110155b156134a857604051639d47e5e360e01b81523090639d47e5e390613456908490600401615d78565b5f60405180830381865afa92505050801561349257506040513d5f823e601f3d908101601f1916820160405261348f9190810190615d8a565b60015b61349e5761349e613f7d565b9695505050505050565b61349e613f7d565b6134b8614838565b6134c0614838565b8381526134cc84613ff2565b60208201525f5460405163ee6eb83d60e01b8152600481018790526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015613517573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061353b91906156a3565b61010082018190526001600160401b0381111561355a5761355a614db8565b604051908082528060200260200182016040528015613583578160200160208202803683370190505b506101808201525f5b81610100015181101561364a575f80546040516302cf91ab60e41b815260048101899052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa1580156135e7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061360b91906156a3565b90508083610180015183815181106136255761362561570b565b6020026020010181815250508581036136415761012083018290525b5060010161358c565b508215613714578061010001516001600160401b0381111561366e5761366e614db8565b6040519080825280602002602001820160405280156136a757816020015b6136946147d0565b81526020019060019003908161368c5790505b506101c08201525f5b81610100015181101561370e576136e482610180015182815181106136d7576136d761570b565b6020026020010151613ff2565b826101c0015182815181106136fb576136fb61570b565b60209081029190910101526001016136b0565b5061374c565b604080515f8082526020820190925290613744565b6137316147d0565b8152602001906001900390816137295790505b506101c08201525b5f54604051620155f160e71b8152600481018690526001600160a01b039091169062aaf88090602401602060405180830381865afa158015613790573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137b491906156a3565b61014082018190526001600160401b038111156137d3576137d3614db8565b6040519080825280602002602001820160405280156137fc578160200160208202803683370190505b506101a08201525f5b8161014001518110156138ad575f5460405163a910c62360e01b815260048101879052602481018390526001600160a01b039091169063a910c62390604401602060405180830381865afa15801561385f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061388391906156a3565b826101a00151828151811061389a5761389a61570b565b6020908102919091010152600101613805565b508215613977578061014001516001600160401b038111156138d1576138d1614db8565b60405190808252806020026020018201604052801561390a57816020015b6138f761477f565b8152602001906001900390816138ef5790505b506101e08201525f5b81610140015181101561397157613947826101a00151828151811061393a5761393a61570b565b602002602001015161335d565b826101e00151828151811061395e5761395e61570b565b6020908102919091010152600101613913565b506139af565b604080515f80825260208201909252906139a7565b61399461477f565b81526020019060019003908161398c5790505b506101e08201525b61014081015115613a42575f5460405163d0c239b760e01b8152600481018690526001600160a01b039091169063d0c239b790602401602060405180830381865afa158015613a00573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a2491906156a3565b6040820152610140810151613a3b906001906156ce565b6101608201525b604081015115613a5f57613a59816040015161335d565b60608201525b613a6885613b44565b60808201525f54604051637adc52f760e01b8152600481018790526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015613ab3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ad791906158db565b60a0820152613ae68582614139565b60c0820152613af485613082565b610200820181905260c00151613b09906131b4565b610220820152602081015160e00151613b21906131b4565b6102408201526020810151613b37908690614221565b60e0820152949350505050565b613b4c614918565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b031663116961f360e11b1790525f805492517f22d2c3e6678ac1695368e47b8e866343cdc17198c09b50fcab9a23fc6d92a9869382916001600160a01b039091169062030d4090613bc8908690615d5d565b5f604051808303818686fa925050503d805f8114613c01576040519150601f19603f3d011682016040523d82523d5f602084013e613c06565b606091505b5091509150818015613c1857505f8151115b15613c8657604051635f992d5760e01b81523090635f992d5790613c40908490600401615d78565b60a060405180830381865afa925050508015613c79575060408051601f3d908101601f19168201909252613c76918101906159ab565b60015b61349e5761349e86614445565b61349e86614445565b8151606090613c9f8360206156f8565b1115613cb9575060408051602081019091525f8152611ff9565b82820160200151801580613cce57506103e881115b15613ce857505060408051602081019091525f8152611ff9565b835181613cf68560206156f8565b613d0091906156f8565b1115613d1b57505060408051602081019091525f8152611ff9565b5f816001600160401b03811115613d3457613d34614db8565b6040519080825280601f01601f191660200182016040528015613d5e576020820181803683370190505b509050604085850101602082015f5b84811015613d8757808301515f1a81830153600101613d6d565b50919695505050505050565b613d9b614838565b613da3614838565b604080515f80825260208083018452610180850192909252825181815280830184526101a0850152825181815291820190925290613df7565b613de46147d0565b815260200190600190039081613ddc5790505b506101c0820152604080515f8082526020820190925290613e2e565b613e1b61477f565b815260200190600190039081613e135790505b506101e0820152919050565b613e426149ed565b613e4a6149ed565b6020830151600114808252613e60579050611ff9565b5f6020820181905260408481015181840152606080860151908401526080808601519084015281549051637adc52f760e01b8152600481018790526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015613ecb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613eef91906158db565b905083604001515f03613f355780516080850151613f0d91906156f8565b60c083018190524210801560a0840152613f3057613f2a85614478565b60e08301525b612fae565b8360400151600203612fae57600161010083015260208101516080850151613f5d91906156f8565b610160830181905242118015610120840152610140830152509392505050565b613f8561477f565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200160405180602001604052805f815250815260200160405180602001604052805f81525081526020015f815250905090565b613ffa6147d0565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b03166251971f60e01b1790525f805492517e51971f7b085c3d81e77976dbd7473ca793801bc535c0b23201ad4b9e5dbed79382916001600160a01b039091169061406f908590615d5d565b5f60405180830381855afa9150503d805f81146140a7576040519150601f19603f3d011682016040523d82523d5f602084013e6140ac565b606091505b50915091508180156140c15750610180815110155b15614131576040516335b4097360e21b8152309063d6d025cc906140e9908490600401615d78565b5f60405180830381865afa92505050801561412557506040513d5f823e601f3d908101601f191682016040526141229190810190615789565b60015b61349e5761349e6145b8565b61349e6145b8565b6141416149ed565b6141496149ed565b6080830151602081015160011480835261416557509050611ff9565b5f602083018190526040808301805191850191909152606080840151908501526080808401519085015260a086015190519091036141d657805160808301516141ae91906156f8565b60c084018190524210801560a08501526141d1576141cb86614478565b60e08401525b614217565b8160400151600203614217576001610100840152602081015160808301516141fe91906156f8565b6101608401819052421180156101208501526101408401525b5090949350505050565b614229614a4c565b614231614a4c565b5f5460408481015160e0860151915163036bd55d60e31b81526004810188905260248101919091526001600160a01b039182166044820152911690631b5eaae890606401606060405180830381865afa158015614290573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142b49190615e78565b506001600160a01b0390811660208401529082525f54604085810151905163946c964560e01b815260048101889052602481019190915291169063946c964590604401602060405180830381865afa158015614312573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061433691906156a3565b6040828101919091525f5460e0850151858301519251635d6dbc8f60e01b81526001600160a01b03918216600482015260248101939093521690635d6dbc8f90604401602060405180830381865afa158015614394573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143b891906156a3565b60608201525f5460e08401516040808601519051639be8eb3960e01b81526001600160a01b0392831660048201526024810191909152911690639be8eb3990604401602060405180830381865afa158015614415573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061443991906156a3565b60808201529392505050565b61444d614918565b506040805160a0810182529182525f6020830181905290820181905260608201819052608082015290565b5f80546040516321f0edd560e01b81526004810184905282916001600160a01b0316906321f0edd590602401602060405180830381865afa1580156144bf573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906144e391906156a3565b5f805460405163d0c239b760e01b81526004810184905292935090916001600160a01b039091169063d0c239b790602401602060405180830381865afa15801561452f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061455391906156a3565b90505f61455f8261335d565b90508060400151600114801561457757506060810151155b1561458757506001949350505050565b604081015115801561459d575080606001516001145b156145ad57506002949350505050565b506001949350505050565b6145c06147d0565b6040518061018001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160405180602001604052805f81525081526020015f81526020015f81526020015f815250905090565b604051806102e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f81526020015f6001600160a01b031681526020015f8152602001606081525090565b60405180606001604052805f6001600160a01b03168152602001606081526020015f60ff1681525090565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200160608152602001606081526020015f81525090565b6040518061018001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b03168152602001606081526020015f81526020015f81526020015f81525090565b6040518061026001604052805f81526020016148526147d0565b81526020015f815260200161486561477f565b8152602001614872614918565b815260200161489e60405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020016148ab6149ed565b81526020016148b8614a4c565b81526020015f81526020015f81526020015f81526020015f8152602001606081526020016060815260200160608152602001606081526020016148f96146ce565b8152602001614906614754565b8152602001614913614754565b905290565b6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051806101600160405280600b906020820280368337509192915050565b604051806101800160405280600c906020820280368337509192915050565b6040518061016001604052805f81526020015f151581526020015f81526020015f81526020016149ae614918565b81526020016149bb6149ed565b81526020015f81526020015f6001600160a01b031681526020015f151581526020015f15158152602001606081525090565b6040518061018001604052805f151581526020015f81526020015f81526020015f81526020015f81526020015f151581526020015f81526020015f81526020015f151581526020015f151581526020015f151581526020015f81525090565b6040518060a001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b5f60208284031215614a8f575f80fd5b5035919050565b5f5b83811015614ab0578181015183820152602001614a98565b50505f910152565b5f8151808452614acf816020860160208601614a96565b601f01601f19169290920160200192915050565b5f6101c0825184526020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a085015260c0830151614b3760c08601826001600160a01b03169052565b5060e0830151614b5260e08601826001600160a01b03169052565b50610100838101516001600160a01b03811686830152505061012083810151908501526101408084015190850152610160808401516001600160a01b0381168287015250506101808084015181860152506101a080840151828287015261349e83870182614ab8565b60018060a01b0381511682525f602082015160606020850152614be16060850182614ab8565b60409384015160ff16949093019390935250919050565b604081525f614c0a6040830185614ae3565b82810360208401526113308185614bbb565b8015158114614c29575f80fd5b50565b5f805f805f60a08688031215614c40575f80fd5b853594506020860135935060408601359250606086013591506080860135614c6781614c1c565b809150509295509295909350565b5f610160825184526020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a085015260c083015160c085015260e083015160e0850152610100808401518282870152614cdb83870182614ab8565b925050506101208084015185830382870152614cf78382614ab8565b61014095860151969095019590955250919392505050565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614d5a57601f19868403018952614d48838351614c75565b98840198925090830190600101614d2c565b5090979650505050505050565b602081525f825160a06020840152614d8260c0840182614d0f565b90506020840151604084015260408401516060840152606084015160808401526080840151151560a08401528091505092915050565b634e487b7160e01b5f52604160045260245ffd5b60405161018081016001600160401b0381118282101715614def57614def614db8565b60405290565b60405161016081016001600160401b0381118282101715614def57614def614db8565b6040516101a081016001600160401b0381118282101715614def57614def614db8565b604051601f8201601f191681016001600160401b0381118282101715614e6357614e63614db8565b604052919050565b5f6001600160401b03821115614e8357614e83614db8565b50601f01601f191660200190565b5f60208284031215614ea1575f80fd5b81356001600160401b03811115614eb6575f80fd5b8201601f81018413614ec6575f80fd5b8035614ed9614ed482614e6b565b614e3b565b818152856020838501011115614eed575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f610180825184526020830151614f2c60208601826001600160a01b03169052565b5060408301516040850152606083015160608501526080830151608085015260a083015160a085015260c083015160c085015260e0830151614f7960e08601826001600160a01b03169052565b50610100808401518282870152614f9283870182614ab8565b6101208681015190880152610140808701519088015261016095860151959096019490945250929392505050565b602081525f6127576020830184614f0a565b6001600160a01b0381168114614c29575f80fd5b5f805f60608486031215614ff8575f80fd5b833561500381614fd2565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b838110156150475781518752958201959082019060010161502b565b509495945050505050565b8051151582526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015161509360a084018215159052565b5060c081015160c083015260e081015160e0830152610100808201516150bc8285018215159052565b5050610120818101511515908301526101408082015115159083015261016090810151910152565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614d5a57601f1986840301895261511d838351614f0a565b98840198925090830190600101615101565b5f61052082518452602083015181602086015261514e82860182614f0a565b91505060408301516040850152606083015184820360608601526151728282614c75565b608085810151805188830152602081015160a0890152604081015160c0890152606081015160e08901529081015161010088015290925090505060a083015180516101208681019190915260208201516101408701526040820151610160870152606082015161018087015260c085015191506101a06151f481880184615052565b60e0860151805161032089015260208101516001600160a01b031661034089015260408101516103608901526060810151610380890152608001516103a08801526101008601516103c0880152818601516103e0880152610140860151610400880152610160860151610420880152610180860151878503610440890152925061527e8484615018565b9350808601519250505084820361046086015261529b8282615018565b9150506101c08301518482036104808601526152b782826150e4565b9150506101e08301518482036104a08601526152d38282614d0f565b9150506102008301518482036104c08601526152ef8282614ae3565b9150506102208301518482036104e086015261530b8282614bbb565b9150506102408301518482036105008601526113308282614bbb565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614d5a57601f1986840301895261536083835161512f565b98840198925090830190600101615344565b604081525f6153846040830185615018565b82810360208401526113308185615327565b5f80604083850312156153a7575f80fd5b82356153b281614fd2565b915060208301356153c281614fd2565b809150509250929050565b60a08101611ff9828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602081525f6127576020830184615018565b5f60208284031215615428575f80fd5b813561275781614fd2565b602081525f6127576020830184614bbb565b5f805f8060808587031215615458575f80fd5b843593506020850135925060408501359150606085013561547881614c1c565b939692955090935050565b602081525f825160a06020840152614d8260c0840182615327565b602081525f6127576020830184614c75565b5f805f606084860312156154c2575f80fd5b833592506020840135915060408401356154db81614c1c565b809150509250925092565b602081525f612757602083018461512f565b5f610340825184526020830151615513602086018215159052565b506040838101518582015260608085015181870152608080860151805182890152602081015160a08901529283015160c08801529082015160e08701528101516101008601525060a083015161012061556e81870183615052565b60c08501516102a087015260e08501516001600160a01b03166102c087015261010085015115156102e0870152840151151561030086015250610140830151610320850182905261133082860182615018565b602081525f61275760208301846154f8565b5f80602083850312156155e4575f80fd5b82356001600160401b03808211156155fa575f80fd5b818501915085601f83011261560d575f80fd5b81358181111561561b575f80fd5b8660208260051b850101111561562f575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561569657603f198886030184526156848583516154f8565b94509285019290850190600101615668565b5092979650505050505050565b5f602082840312156156b3575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611ff957611ff96156ba565b8082028115828204841417611ff957611ff96156ba565b80820180821115611ff957611ff96156ba565b634e487b7160e01b5f52603260045260245ffd5b5f60018201615730576157306156ba565b5060010190565b805161574281614fd2565b919050565b5f82601f830112615756575f80fd5b8151615764614ed482614e6b565b818152846020838601011115615778575f80fd5b6124db826020830160208701614a96565b5f60208284031215615799575f80fd5b81516001600160401b03808211156157af575f80fd5b9083019061018082860312156157c3575f80fd5b6157cb614dcc565b825181526157db60208401615737565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015261581e60e08401615737565b60e08201526101008084015183811115615836575f80fd5b61584288828701615747565b9183019190915250610120838101519082015261014080840151908201526101609283015192810192909252509392505050565b5f805f805f8060c0878903121561588b575f80fd5b86519550602087015161589d81614fd2565b60408801519095506158ae81614fd2565b60608801519094506158bf81614fd2565b809350506080870151915060a087015190509295509295509295565b5f608082840312156158eb575f80fd5b604051608081018181106001600160401b038211171561590d5761590d614db8565b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b5f60a0828403121561594e575f80fd5b60405160a081018181106001600160401b038211171561597057615970614db8565b806040525080915082518152602083015160208201526040830151604082015260608301516060820152608083015160808201525092915050565b5f60a082840312156159bb575f80fd5b612757838361593e565b805161574281614c1c565b5f61018082840312156159e1575f80fd5b6159e9614dcc565b90506159f4826159c5565b815260208201516020820152604082015160408201526060820151606082015260808201516080820152615a2a60a083016159c5565b60a082015260c082015160c082015260e082015160e0820152610100615a518184016159c5565b90820152610120615a638382016159c5565b90820152610140615a758382016159c5565b818301525061016080830151818301525092915050565b5f82601f830112615a9b575f80fd5b815160206001600160401b03821115615ab657615ab6614db8565b8160051b615ac5828201614e3b565b9283528481018201928281019087851115615ade575f80fd5b83870192505b84831015615afd57825182529183019190830190615ae4565b979650505050505050565b5f60208284031215615b18575f80fd5b81516001600160401b0380821115615b2e575f80fd5b908301906103408286031215615b42575f80fd5b615b4a614df5565b82518152615b5a602084016159c5565b60208201526040830151604082015260608301516060820152615b80866080850161593e565b6080820152610120615b94878286016159d0565b60a08301526102a084015160c0830152615bb16102c08501615737565b60e0830152615bc36102e085016159c5565b610100830152615bd661030085016159c5565b9082015261032083015182811115615bec575f80fd5b615bf887828601615a8c565b6101408301525095945050505050565b5f60208284031215615c18575f80fd5b81516001600160401b0380821115615c2e575f80fd5b908301906101a08286031215615c42575f80fd5b615c4a614e18565b8251815260208301516020820152604083015160408201526060830151606082015260808301516080820152615c8260a08401615737565b60a0820152615c9360c08401615737565b60c0820152615ca460e08401615737565b60e082015261010083810151908201526101208084015190820152610140615ccd818501615737565b9082015261016083810151908201526101808084015183811115615cef575f80fd5b615cfb88828701615747565b918301919091525095945050505050565b5f60208284031215615d1c575f80fd5b81516001600160401b03811115615d31575f80fd5b6124db84828501615747565b5f60208284031215615d4d575f80fd5b815160ff81168114612757575f80fd5b5f8251615d6e818460208701614a96565b9190910192915050565b602081525f6127576020830184614ab8565b5f60208284031215615d9a575f80fd5b81516001600160401b0380821115615db0575f80fd5b908301906101608286031215615dc4575f80fd5b615dcc614df5565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015183811115615e29575f80fd5b615e3588828701615747565b8284015250506101208084015183811115615e4e575f80fd5b615e5a88828701615747565b91830191909152506101409283015192810192909252509392505050565b5f805f60608486031215615e8a575f80fd5b835192506020840151615e9c81614fd2565b8092505060408401519050925092509256fea2646970667358221220fefea3be1db183c649b37a747b15fe695153c712a9bd69c9ea64c8295fff9c3264736f6c63430008180033