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_1
viewfunction GetOrderDetail_1(uint256 _order_id) view returns (tuple order_detail)
GetOrderDetail
viewfunction GetOrderDetail(uint256 _order_id) view returns (tuple order_detail, tuple order_token_info)
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
0x608060405234801561000f575f80fd5b50600280546001600160a01b03191633179055615d6c80620000305f395ff3fe608060405234801561000f575f80fd5b5060043610610132575f3560e01c80635f992d57116100b45780639d47e5e3116100795780639d47e5e3146103f9578063cae4f4d514610419578063d6d025cc14610439578063e39b60ab1461044c578063e5b5bd5c1461045f578063fd46b5a41461047f575f80fd5b80635f992d57146103665780638bce8da3146103865780638da5cb5b146103a6578063937bf141146103b957806399f41dc0146103d9575f80fd5b806346e1928d116100fa57806346e1928d146102d457806348edd5c2146102e657806349a491a3146103075780634c9083d614610331578063552c24a214610346575f80fd5b806303e2c41e14610136578063108ed80a1461024857806311516fe21461027357806316b062731461029457806342ac4ca8146102b4575b5f80fd5b61013e61049f565b60405161023f9190815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526101e08083015190820152610200808301519082015261022080830151908201526102408083015190820152610260808301519082015261028080830151908201526102a080830151908201526102c091820151918101919091526102e00190565b60405180910390f35b60015461025b906001600160a01b031681565b6040516001600160a01b03909116815260200161023f565b6102866102813660046148d0565b610e85565b60405161023f929190614a49565b6102a76102a2366004614a7d565b610eb4565b60405161023f9190614bb8565b6102c76102c2366004614ce2565b6112b5565b60405161023f9190614e11565b5f5461025b906001600160a01b031681565b6102f96102f4366004614e37565b611386565b60405161023f9291906151c3565b61031a6103153660046148d0565b6119e0565b60408051921515835260208301919091520161023f565b61034461033f3660046151e7565b611c59565b005b6103596103543660046148d0565b611cd1565b60405161023f919061521e565b610379610374366004614ce2565b611ce8565b60405161023f9190615230565b6103996103943660046148d0565b611d04565b60405161023f9190615269565b60025461025b906001600160a01b031681565b6103cc6103c736600461527b565b611e5e565b60405161023f9190615296565b6103ec6103e73660046152a8565b611e6f565b60405161023f91906152e6565b61040c610407366004614ce2565b6121e8565b60405161023f9190615301565b61042c610427366004615313565b612313565b60405161023f9190615349565b6102c7610447366004614ce2565b612463565b61039961045a3660046148d0565b6125a4565b61047261046d3660046148d0565b6126f5565b60405161023f9190615424565b61049261048d366004615436565b612baf565b60405161023f91906154a4565b6104a7614488565b6104af614488565b5f8054906101000a90046001600160a01b03166001600160a01b031663b79dca066040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105219190615506565b81525f546040805163431271eb60e01b815290516001600160a01b039092169163431271eb916004808201926020929091908290030181865afa15801561056a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058e9190615506565b6020808301919091525f54604080516305d23aab60e31b815290516001600160a01b0390921692632e91d558926004808401938290030181865afa1580156105d8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105fc9190615506565b6040808301919091525f5481516355badf8760e11b815291516001600160a01b039091169163ab75bf0e9160048083019260209291908290030181865afa158015610649573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066d9190615506565b60608201525f5460408051633467687760e11b815290516001600160a01b03909216916368ced0ee916004808201926020929091908290030181865afa1580156106b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106dd9190615506565b60808201525f546040805163ef02b7e560e01b815290516001600160a01b039092169163ef02b7e5916004808201926020929091908290030181865afa158015610729573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061074d9190615506565b60a08201525f5460408051636d02af8560e01b815290516001600160a01b0390921691636d02af85916004808201926020929091908290030181865afa158015610799573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bd9190615506565b60c08201525f54604080516309f04dff60e01b815290516001600160a01b03909216916309f04dff916004808201926020929091908290030181865afa158015610809573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061082d9190615506565b60e08201525f546040805163efd4620760e01b815290516001600160a01b039092169163efd46207916004808201926020929091908290030181865afa158015610879573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061089d9190615506565b6101008201525f546040805163169fa0df60e11b815290516001600160a01b0390921691632d3f41be916004808201926020929091908290030181865afa1580156108ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090e9190615506565b6101208201525f54604080516303c7fc4760e11b815290516001600160a01b039092169163078ff88e916004808201926020929091908290030181865afa15801561095b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097f9190615506565b6101408201525f5460408051630156a1f560e71b815290516001600160a01b039092169163ab50fa80916004808201926020929091908290030181865afa1580156109cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f09190615506565b6101608201525f546040805163d048940f60e01b815290516001600160a01b039092169163d048940f916004808201926020929091908290030181865afa158015610a3d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a619190615506565b6101808201525f5460408051633307efc960e11b815290516001600160a01b039092169163660fdf92916004808201926020929091908290030181865afa158015610aae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad29190615506565b6101a08201525f54604080516330a84f5160e01b815290516001600160a01b03909216916330a84f51916004808201926020929091908290030181865afa158015610b1f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b439190615506565b6101c08201525f546040805163cb9ea33760e01b815290516001600160a01b039092169163cb9ea337916004808201926020929091908290030181865afa158015610b90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb49190615506565b6101e08201525f5460408051625db74960e11b815290516001600160a01b039092169162bb6e92916004808201926020929091908290030181865afa158015610bff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c239190615506565b6102008201525f54604080516357eb05f360e01b815290516001600160a01b03909216916357eb05f3916004808201926020929091908290030181865afa158015610c70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c949190615506565b6102208201525f546040805163f9eb2c7560e01b815290516001600160a01b039092169163f9eb2c75916004808201926020929091908290030181865afa158015610ce1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d059190615506565b6102408201525f546040805163130ae74560e31b815290516001600160a01b03909216916398573a28916004808201926020929091908290030181865afa158015610d52573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d769190615506565b6102608201525f546040805163049ba6dd60e21b815290516001926001600160a01b03169163126e9b749160048083019260209291908290030181865afa158015610dc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de79190615506565b610df19190615531565b6102808201525f54604080516307337c2b60e21b815290516001926001600160a01b031691631ccdf0ac9160048083019260209291908290030181865afa158015610e3e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e629190615506565b610e6c9190615531565b6102a0820152610e7a612cbb565b6102c0820152919050565b610e8d61451f565b610e956145a5565b610e9e83612d80565b9150610ead8260c00151612f07565b9050915091565b610ee46040518060a00160405280606081526020015f81526020015f81526020015f81526020015f151581525090565b848615801590610ef2575085155b15610f64575f546040516321f0edd560e01b8152600481018990526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015610f3d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f619190615506565b90505b5f8054604051620155f160e71b8152600481018490526001600160a01b039091169062aaf88090602401602060405180830381865afa158015610fa9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fcd9190615506565b9050801580610fda575081155b1561103d57604080515f60a0820181815260c0830190935290918291611016565b6110036145d0565b815260200190600190039081610ffb5790505b5081526020015f81526020018781526020018681526020015f1515815250925050506112ac565b5f6110488688615544565b90505f80876001600160401b0381111561106457611064614c09565b60405190808252806020026020018201604052801561109d57816020015b61108a6145d0565b8152602001906001900390816110825790505b5090505f5b88811080156110b057508883105b156111d0575f88156110fa57856110c7838761555b565b106110d257506111d0565b81856110df600189615531565b6110e99190615531565b6110f39190615531565b9050611113565b611104828661555b565b905085811061111357506111d0565b5f805460405163a910c62360e01b8152600481018a9052602481018490526001600160a01b039091169063a910c62390604401602060405180830381865afa158015611161573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111859190615506565b9050611190816130b0565b8486815181106111a2576111a261556e565b602002602001018190525084806111b890615582565b955050505080806111c890615582565b9150506110a2565b505f826001600160401b038111156111ea576111ea614c09565b60405190808252806020026020018201604052801561122357816020015b6112106145d0565b8152602001906001900390816112085790505b5090505f5b8381101561126f578281815181106112425761124261556e565b602002602001015182828151811061125c5761125c61556e565b6020908102919091010152600101611228565b506040518060a001604052808281526020018681526020018b81526020018a81526020018685876112a0919061555b565b10905296505050505050505b95945050505050565b6112bd614621565b6112c5614621565b5f60208401805192506020810151602084015260408101516040840152606081015160608401526080810151608084015260a081015160a084015260c081015160c084015260e081015160e08401526101008101519150610120810151610120840152610140810151610140840152610160810151610160840152505f811180156113505750835181105b1561136a5761135f84826131d8565b61010083015261137f565b60408051602081019091525f81526101008301525b5092915050565b6060805f60015f9054906101000a90046001600160a01b03166001600160a01b0316637380904d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113da573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113fe9190615506565b90505f816001600160401b0381111561141957611419614c09565b604051908082528060200260200182016040528015611442578160200160208202803683370190505b5090505f60015b838110156116e1575f805460405163ee6eb83d60e01b8152600481018490526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015611498573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114bc9190615506565b9050805f036114cb57506116d9565b5f805b828110156116a3575f80546040516302cf91ab60e41b815260048101879052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015611524573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115489190615506565b5f80546040516251971f60e01b81526004810184905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611591573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526115b891908101906155ec565b6001546040516371dba4dd60e11b8152600481018990529192505f9182916001600160a01b03169063e3b749ba9060240160c060405180830381865afa158015611604573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061162891906156d9565b50509350935050508f6001600160a01b031683602001516001600160a01b0316148061166557508f6001600160a01b0316826001600160a01b0316145b8061168157508f6001600160a01b0316816001600160a01b0316145b156116935760019550505050506116a3565b5050600190920191506114ce9050565b5080156116d657828585815181106116bd576116bd61556e565b6020908102919091010152836116d281615582565b9450505b50505b600101611449565b505f6116ed8789615544565b90505f876001600160401b0381111561170857611708614c09565b604051908082528060200260200182016040528015611731578160200160208202803683370190505b509650876001600160401b0381111561174c5761174c614c09565b60405190808252806020026020018201604052801561178557816020015b611772614689565b81526020019060019003908161176a5790505b5095505f5b888110801561179857508882105b156118b2575f6117a8828561555b565b90508481106117b757506118b2565b5f8682815181106117ca576117ca61556e565b60209081029190910101515f80546040516321f0edd560e01b81526004810184905292935090916001600160a01b03909116906321f0edd590602401602060405180830381865afa158015611821573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118459190615506565b9050818b868151811061185a5761185a61556e565b60200260200101818152505061187182825f6133fb565b8a86815181106118835761188361556e565b6020026020010181905250848061189990615582565b95505050505080806118aa90615582565b91505061178a565b505f816001600160401b038111156118cc576118cc614c09565b6040519080825280602002602001820160405280156118f5578160200160208202803683370190505b5090505f826001600160401b0381111561191157611911614c09565b60405190808252806020026020018201604052801561194a57816020015b611937614689565b81526020019060019003908161192f5790505b5090505f5b838110156119ce578981815181106119695761196961556e565b60200260200101518382815181106119835761198361556e565b6020026020010181815250508881815181106119a1576119a161556e565b60200260200101518282815181106119bb576119bb61556e565b602090810291909101015260010161194f565b50909b909a5098505050505050505050565b5f805460405163ee6eb83d60e01b815260048101849052829182916001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015611a2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a4f9190615506565b9050805f03611a645750600193849350915050565b5f80546040516321f0edd560e01b8152600481018790526001600160a01b03909116906321f0edd590602401602060405180830381865afa158015611aab573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611acf9190615506565b90505f611adb86613a8f565b5f80546040516251971f60e01b81526004810186905292935090916001600160a01b03909116906251971f906024015f60405180830381865afa158015611b24573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b4b91908101906155ec565b90508061012001515f14611b6857505f9660029650945050505050565b81602001516001148015611b8157508160400151600214155b15611b9557505f9660039650945050505050565b8160400151600203611c4a575f8054604051637adc52f760e01b8152600481018a90526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015611be8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c0c919061573e565b905080602001518360800151611c22919061555b565b421015611c3957505f976004975095505050505050565b506001976005975095505050505050565b506001965f9650945050505050565b6002546001600160a01b03163314611ca45760405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b604482015260640160405180910390fd5b5f80546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055565b611cd961451f565b611ce282612d80565b92915050565b611cf0614769565b81806020019051810190611ce2919061580e565b5f805460405163ee6eb83d60e01b815260048101849052606092916001600160a01b03169063ee6eb83d90602401602060405180830381865afa158015611d4d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d719190615506565b9050806001600160401b03811115611d8b57611d8b614c09565b604051908082528060200260200182016040528015611db4578160200160208202803683370190505b5091505f5b81811015611e57575f546040516302cf91ab60e41b815260048101869052602481018390526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015611e0e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e329190615506565b838281518110611e4457611e4461556e565b6020908102919091010152600101611db9565b5050919050565b611e666145a5565b611ce282612f07565b611e9f6040518060a00160405280606081526020015f81526020015f81526020015f81526020015f151581525090565b5f805460405163ee6eb83d60e01b8152600481018890526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015611ee6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f0a9190615506565b9050805f03611f7057604080515f60a0820181815260c0830190935290918291611f4a565b611f37614689565b815260200190600190039081611f2f5790505b5081526020015f81526020018681526020018581526020015f15158152509150506121e0565b5f611f7b8587615544565b90505f80866001600160401b03811115611f9757611f97614c09565b604051908082528060200260200182016040528015611fd057816020015b611fbd614689565b815260200190600190039081611fb55790505b5090505f5b8781108015611fe357508783105b15612105575f871561202d5785611ffa838761555b565b106120055750612105565b8185612012600189615531565b61201c9190615531565b6120269190615531565b9050612046565b612037828661555b565b90508581106120465750612105565b5f80546040516302cf91ab60e41b8152600481018e9052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015612094573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120b89190615506565b90506120c58c825f6133fb565b8486815181106120d7576120d761556e565b602002602001018190525084806120ed90615582565b955050505080806120fd90615582565b915050611fd5565b505f826001600160401b0381111561211f5761211f614c09565b60405190808252806020026020018201604052801561215857816020015b612145614689565b81526020019060019003908161213d5790505b5090505f5b838110156121a4578281815181106121775761217761556e565b60200260200101518282815181106121915761219161556e565b602090810291909101015260010161215d565b506040518060a001604052808281526020018681526020018a81526020018981526020018685876121d5919061555b565b109052955050505050505b949350505050565b6121f06145d0565b6121f8614793565b602083015f5b600b81101561221b576020810282810151908401526001016121fe565b505060408051602080820183525f80835283519182019093528281529091836008602002015111801561225357508451610100840151105b1561226d5761226a858460085b60200201516131d8565b91505b6101208301511580159061228657508451610120840151105b1561229a5761229785846009612260565b90505b604080516101608101825284518152602080860151908201528482015191810191909152606080850151908201526080808501519082015260a0808501519082015260c0808501519082015260e08085015190820152610100810192909252610120820152610140918201519181019190915292915050565b61231b614689565b83838115801561232a57505f85115b156123a7575f80546040516251971f60e01b8152600481018890526001600160a01b03909116906251971f906024015f60405180830381865afa158015612373573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261239a91908101906155ec565b51925085915061243d9050565b851561242c57845f03612425575f546040516321f0edd560e01b8152600481018890526001600160a01b03909116906321f0edd590602401602060405180830381865afa1580156123fa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061241e9190615506565b905061243d565b508361243d565b612434613be4565b9250505061245c565b805f0361244c57612434613be4565b6124578282866133fb565b925050505b9392505050565b61246b614621565b6124736147b2565b602083015f5b600c81101561249657602081028281015190840152600101612479565b505060408051602081019091525f8152610100820151158015906124bf57508351610100830151105b156124d3576124d084836008612260565b90505b6040805161018081018252835181526020808501516001600160a01b0316908201528382015191810191909152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e0810183600760200201516001600160a01b03168152602001828152602001836009600c811061255b5761255b61556e565b6020020151815260200183600a600c81106125785761257861556e565b6020020151815260200183600b600c81106125955761259561556e565b60200201519052949350505050565b5f8054604051620155f160e71b815260048101849052606092916001600160a01b03169062aaf88090602401602060405180830381865afa1580156125eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260f9190615506565b9050806001600160401b0381111561262957612629614c09565b604051908082528060200260200182016040528015612652578160200160208202803683370190505b5091505f5b81811015611e57575f5460405163a910c62360e01b815260048101869052602481018390526001600160a01b039091169063a910c62390604401602060405180830381865afa1580156126ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126d09190615506565b8382815181106126e2576126e261556e565b6020908102919091010152600101612657565b6126fd6147d1565b6127056147d1565b8281525f805460405163ee6eb83d60e01b8152600481018690526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa15801561274f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127739190615506565b60408301819052801515602084018190529091506127a65750604080515f81526020810190915261014082015292915050565b806001600160401b038111156127be576127be614c09565b6040519080825280602002602001820160405280156127e7578160200160208202803683370190505b506101408301525f5b81811015612893575f546040516302cf91ab60e41b815260048101879052602481018390526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015612845573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128699190615506565b83610140015182815181106128805761288061556e565b60209081029190910101526001016127f0565b505f80546040516321f0edd560e01b8152600481018790526001600160a01b03909116906321f0edd590602401602060405180830381865afa1580156128db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128ff9190615506565b60608401819052905061291185613a8f565b60808401819052612923908690613c8b565b60a08401525f80805b84811015612a09575f805461014088015180516001600160a01b03909216916251971f9190859081106129615761296161556e565b60200260200101516040518263ffffffff1660e01b815260040161298791815260200190565b5f60405180830381865afa1580156129a1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526129c891908101906155ec565b90508060a0015181608001516129de919061555b565b6129e8908561555b565b93506001600160a01b038316612a00578060e0015192505b5060010161292c565b5060c085018290526001600160a01b0381811660e08701525f80546040516251971f60e01b815260048101879052919216906251971f906024015f60405180830381865afa158015612a5d573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612a8491908101906155ec565b6001546040516371dba4dd60e11b8152600481018b90529192505f916001600160a01b039091169063e3b749ba9060240160c060405180830381865afa158015612ad0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612af491906156d9565b50505060208501516001600160a01b03908116818316146101008c01525f805460405163d0c239b760e01b815293965090945016915063d0c239b790612b4290899060040190815260200190565b602060405180830381865afa158015612b5d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b819190615506565b90508015612ba1575f612b93826130b0565b6060015115156101208a0152505b509598975050505050505050565b60605f826001600160401b03811115612bca57612bca614c09565b604051908082528060200260200182016040528015612c0357816020015b612bf06147d1565b815260200190600190039081612be85790505b5090505f5b83811015612cb3573063e5b5bd5c868684818110612c2857612c2861556e565b905060200201356040518263ffffffff1660e01b8152600401612c4d91815260200190565b5f60405180830381865afa158015612c67573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052612c8e919081019061596b565b828281518110612ca057612ca061556e565b6020908102919091010152600101612c08565b509392505050565b5f8060015f9054906101000a90046001600160a01b03166001600160a01b0316637380904d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d319190615506565b90505f60015b8281101561137f575f612d4982613a8f565b905080602001516001148015612d6457508060400151600214155b15612d775782612d7381615582565b9350505b50600101612d37565b612d8861451f565b612d9061451f565b8281526001546040516316c45f7360e31b8152600481018590526001600160a01b039091169063b622fb98906024015f60405180830381865afa925050508015612dfb57506040513d5f823e601f3d908101601f19168201604052612df89190810190615a6b565b60015b15611ce257805160208084019190915281015160408084019190915281015160608084019190915281015160808084019190915281015160a0808401919091528101516001600160a01b0390811660c080850191909152820151811660e0808501919091528201518116610100808501919091528201516101208085019190915282015161014080850191909152820151166101608084019190915281015161018080840191909152810151805115612eea575f815182604051602001612ec3929190615b6f565b6040516020818303038152906040529050612ede815f6131d8565b6101a085015250612eff565b60408051602081019091525f81526101a08401525b505092915050565b612f0f6145a5565b612f176145a5565b6001600160a01b038316808252612f5457604080518082018252600381526221272160e91b60208083019190915283015260129082015292915050565b6001600160a01b0383167355d398326f99059ff775485246999027b319795503612fa55760408051808201825260048152631554d11560e21b60208083019190915283015260129082015292915050565b826001600160a01b03166395d89b416040518163ffffffff1660e01b81526004015f60405180830381865afa92505050801561300257506040513d5f823e601f3d908101601f19168201604052612fff9190810190615b94565b60015b61303357604051806040016040528060078152602001662aa725a727aba760c91b8152508160200181905250613039565b60208201525b826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613093575060408051601f3d908101601f1916820190925261309091810190615bc5565b60015b6130a2575f6040820152611ce2565b60ff16604082015292915050565b6130b86145d0565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b0316633cd45a6360e01b1790525f805492517f3cd45a63be193ec81bf5621674b01ee313894a608701dd3c70febe2540a48534936001600160a01b03169061312b908490615be5565b5f60405180830381855afa9150503d805f8114613163576040519150601f19603f3d011682016040523d82523d5f602084013e613168565b606091505b50604051639d47e5e360e01b8152909250309150639d47e5e390613190908490600401615c00565b5f60405180830381865afa9250505080156131cc57506040513d5f823e601f3d908101601f191682016040526131c99190810190615c12565b60015b6112ac576112ac613dce565b818101602001516060908015806131f057506101f481115b1561320a57505060408051602081019091525f8152611ce2565b83518161321885602061555b565b613222919061555b565b111561323d57505060408051602081019091525f8152611ce2565b5f816001600160401b0381111561325657613256614c09565b6040519080825280601f01601f191660200182016040528015613280576020820181803683370190505b5090505f805b83811015613332576040868201880101515f1a60f881901c602081108015906132b35750607e8160ff1611155b806132c157508060ff166009145b806132cf57508060ff16600a145b806132dd57508060ff16600d145b806132ec575060808160ff1610155b1561332857818585815181106133045761330461556e565b60200101906001600160f81b03191690815f1a9053508361332481615582565b9450505b5050600101613286565b50805f036133535760405180602001604052805f8152509350505050611ce2565b5f816001600160401b0381111561336c5761336c614c09565b6040519080825280601f01601f191660200182016040528015613396576020820181803683370190505b5090505f5b828110156133f0578381815181106133b5576133b561556e565b602001015160f81c60f81b8282815181106133d2576133d261556e565b60200101906001600160f81b03191690815f1a90535060010161339b565b509695505050505050565b613403614689565b61340b614689565b83815261341784613e43565b60208201525f5460405163ee6eb83d60e01b8152600481018790526001600160a01b039091169063ee6eb83d90602401602060405180830381865afa158015613462573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134869190615506565b61010082018190526001600160401b038111156134a5576134a5614c09565b6040519080825280602002602001820160405280156134ce578160200160208202803683370190505b506101808201525f5b816101000151811015613595575f80546040516302cf91ab60e41b815260048101899052602481018490526001600160a01b0390911690632cf91ab090604401602060405180830381865afa158015613532573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906135569190615506565b90508083610180015183815181106135705761357061556e565b60200260200101818152505085810361358c5761012083018290525b506001016134d7565b50821561365f578061010001516001600160401b038111156135b9576135b9614c09565b6040519080825280602002602001820160405280156135f257816020015b6135df614621565b8152602001906001900390816135d75790505b506101c08201525f5b8161010001518110156136595761362f82610180015182815181106136225761362261556e565b6020026020010151613e43565b826101c0015182815181106136465761364661556e565b60209081029190910101526001016135fb565b50613697565b604080515f808252602082019092529061368f565b61367c614621565b8152602001906001900390816136745790505b506101c08201525b5f54604051620155f160e71b8152600481018690526001600160a01b039091169062aaf88090602401602060405180830381865afa1580156136db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136ff9190615506565b61014082018190526001600160401b0381111561371e5761371e614c09565b604051908082528060200260200182016040528015613747578160200160208202803683370190505b506101a08201525f5b8161014001518110156137f8575f5460405163a910c62360e01b815260048101879052602481018390526001600160a01b039091169063a910c62390604401602060405180830381865afa1580156137aa573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137ce9190615506565b826101a0015182815181106137e5576137e561556e565b6020908102919091010152600101613750565b5082156138c2578061014001516001600160401b0381111561381c5761381c614c09565b60405190808252806020026020018201604052801561385557816020015b6138426145d0565b81526020019060019003908161383a5790505b506101e08201525f5b8161014001518110156138bc57613892826101a0015182815181106138855761388561556e565b60200260200101516130b0565b826101e0015182815181106138a9576138a961556e565b602090810291909101015260010161385e565b506138fa565b604080515f80825260208201909252906138f2565b6138df6145d0565b8152602001906001900390816138d75790505b506101e08201525b6101408101511561398d575f5460405163d0c239b760e01b8152600481018690526001600160a01b039091169063d0c239b790602401602060405180830381865afa15801561394b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061396f9190615506565b604082015261014081015161398690600190615531565b6101608201525b6040810151156139aa576139a481604001516130b0565b60608201525b6139b385613a8f565b60808201525f54604051637adc52f760e01b8152600481018790526001600160a01b0390911690637adc52f790602401608060405180830381865afa1580156139fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a22919061573e565b60a0820152613a318582613f8a565b60c0820152613a3f85612d80565b610200820181905260c00151613a5490612f07565b610220820152602081015160e00151613a6c90612f07565b6102408201526020810151613a82908690614072565b60e0820152949350505050565b613a97614769565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b031663116961f360e11b1790525f805492517f22d2c3e6678ac1695368e47b8e866343cdc17198c09b50fcab9a23fc6d92a9869382916001600160a01b039091169062030d4090613b13908690615be5565b5f604051808303818686fa925050503d805f8114613b4c576040519150601f19603f3d011682016040523d82523d5f602084013e613b51565b606091505b5091509150818015613b6357505f8151115b15613bdb57604051635f992d5760e01b81523090635f992d5790613b8b908490600401615c00565b60a060405180830381865afa925050508015613bc4575060408051601f3d908101601f19168201909252613bc19181019061580e565b60015b613bd157613bd186614296565b9695505050505050565b613bd186614296565b613bec614689565b613bf4614689565b604080515f80825260208083018452610180850192909252825181815280830184526101a0850152825181815291820190925290613c48565b613c35614621565b815260200190600190039081613c2d5790505b506101c0820152604080515f8082526020820190925290613c7f565b613c6c6145d0565b815260200190600190039081613c645790505b506101e0820152919050565b613c9361483e565b613c9b61483e565b6020830151600114808252613cb1579050611ce2565b5f6020820181905260408481015181840152606080860151908401526080808601519084015281549051637adc52f760e01b8152600481018790526001600160a01b0390911690637adc52f790602401608060405180830381865afa158015613d1c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613d40919061573e565b905083604001515f03613d865780516080850151613d5e919061555b565b60c083018190524210801560a0840152613d8157613d7b856142c9565b60e08301525b612cb3565b8360400151600203612cb357600161010083015260208101516080850151613dae919061555b565b610160830181905242118015610120840152610140830152509392505050565b613dd66145d0565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200160405180602001604052805f815250815260200160405180602001604052805f81525081526020015f815250905090565b613e4b614621565b60408051602480820185905282518083039091018152604490910182526020810180516001600160e01b03166251971f60e01b1790525f805492517e51971f7b085c3d81e77976dbd7473ca793801bc535c0b23201ad4b9e5dbed79382916001600160a01b0390911690613ec0908590615be5565b5f60405180830381855afa9150503d805f8114613ef8576040519150601f19603f3d011682016040523d82523d5f602084013e613efd565b606091505b5091509150818015613f125750610180815110155b15613f82576040516335b4097360e21b8152309063d6d025cc90613f3a908490600401615c00565b5f60405180830381865afa925050508015613f7657506040513d5f823e601f3d908101601f19168201604052613f7391908101906155ec565b60015b613bd157613bd1614409565b613bd1614409565b613f9261483e565b613f9a61483e565b60808301516020810151600114808352613fb657509050611ce2565b5f602083018190526040808301805191850191909152606080840151908501526080808401519085015260a086015190519091036140275780516080830151613fff919061555b565b60c084018190524210801560a08501526140225761401c866142c9565b60e08401525b614068565b81604001516002036140685760016101008401526020810151608083015161404f919061555b565b6101608401819052421180156101208501526101408401525b5090949350505050565b61407a61489d565b61408261489d565b5f5460408481015160e0860151915163036bd55d60e31b81526004810188905260248101919091526001600160a01b039182166044820152911690631b5eaae890606401606060405180830381865afa1580156140e1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141059190615d00565b506001600160a01b0390811660208401529082525f54604085810151905163946c964560e01b815260048101889052602481019190915291169063946c964590604401602060405180830381865afa158015614163573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141879190615506565b6040828101919091525f5460e0850151858301519251635d6dbc8f60e01b81526001600160a01b03918216600482015260248101939093521690635d6dbc8f90604401602060405180830381865afa1580156141e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906142099190615506565b60608201525f5460e08401516040808601519051639be8eb3960e01b81526001600160a01b0392831660048201526024810191909152911690639be8eb3990604401602060405180830381865afa158015614266573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061428a9190615506565b60808201529392505050565b61429e614769565b506040805160a0810182529182525f6020830181905290820181905260608201819052608082015290565b5f80546040516321f0edd560e01b81526004810184905282916001600160a01b0316906321f0edd590602401602060405180830381865afa158015614310573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143349190615506565b5f805460405163d0c239b760e01b81526004810184905292935090916001600160a01b039091169063d0c239b790602401602060405180830381865afa158015614380573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906143a49190615506565b90505f6143b0826130b0565b9050806040015160011480156143c857506060810151155b156143d857506001949350505050565b60408101511580156143ee575080606001516001145b156143fe57506002949350505050565b506001949350505050565b614411614621565b6040518061018001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160405180602001604052805f81525081526020015f81526020015f81526020015f815250905090565b604051806102e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81525090565b604051806101c001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f81526020015f6001600160a01b031681526020015f8152602001606081525090565b60405180606001604052805f6001600160a01b03168152602001606081526020015f60ff1681525090565b6040518061016001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f815260200160608152602001606081526020015f81525090565b6040518061018001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b03168152602001606081526020015f81526020015f81526020015f81525090565b6040518061026001604052805f81526020016146a3614621565b81526020015f81526020016146b66145d0565b81526020016146c3614769565b81526020016146ef60405180608001604052805f81526020015f81526020015f81526020015f81525090565b81526020016146fc61483e565b815260200161470961489d565b81526020015f81526020015f81526020015f81526020015f81526020016060815260200160608152602001606081526020016060815260200161474a61451f565b81526020016147576145a5565b81526020016147646145a5565b905290565b6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b604051806101600160405280600b906020820280368337509192915050565b604051806101800160405280600c906020820280368337509192915050565b6040518061016001604052805f81526020015f151581526020015f81526020015f81526020016147ff614769565b815260200161480c61483e565b81526020015f81526020015f6001600160a01b031681526020015f151581526020015f15158152602001606081525090565b6040518061018001604052805f151581526020015f81526020015f81526020015f81526020015f81526020015f151581526020015f81526020015f81526020015f151581526020015f151581526020015f151581526020015f81525090565b6040518060a001604052805f81526020015f6001600160a01b031681526020015f81526020015f81526020015f81525090565b5f602082840312156148e0575f80fd5b5035919050565b5f5b838110156149015781810151838201526020016148e9565b50505f910152565b5f81518084526149208160208601602086016148e7565b601f01601f19169290920160200192915050565b5f6101c0825184526020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a085015260c083015161498860c08601826001600160a01b03169052565b5060e08301516149a360e08601826001600160a01b03169052565b50610100838101516001600160a01b03811686830152505061012083810151908501526101408084015190850152610160808401516001600160a01b0381168287015250506101808084015181860152506101a0808401518282870152613bd183870182614909565b60018060a01b0381511682525f602082015160606020850152614a326060850182614909565b60409384015160ff16949093019390935250919050565b604081525f614a5b6040830185614934565b82810360208401526112ac8185614a0c565b8015158114614a7a575f80fd5b50565b5f805f805f60a08688031215614a91575f80fd5b853594506020860135935060408601359250606086013591506080860135614ab881614a6d565b809150509295509295909350565b5f610160825184526020830151602085015260408301516040850152606083015160608501526080830151608085015260a083015160a085015260c083015160c085015260e083015160e0850152610100808401518282870152614b2c83870182614909565b925050506101208084015185830382870152614b488382614909565b61014095860151969095019590955250919392505050565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614bab57601f19868403018952614b99838351614ac6565b98840198925090830190600101614b7d565b5090979650505050505050565b602081525f825160a06020840152614bd360c0840182614b60565b90506020840151604084015260408401516060840152606084015160808401526080840151151560a08401528091505092915050565b634e487b7160e01b5f52604160045260245ffd5b60405161018081016001600160401b0381118282101715614c4057614c40614c09565b60405290565b60405161016081016001600160401b0381118282101715614c4057614c40614c09565b6040516101a081016001600160401b0381118282101715614c4057614c40614c09565b604051601f8201601f191681016001600160401b0381118282101715614cb457614cb4614c09565b604052919050565b5f6001600160401b03821115614cd457614cd4614c09565b50601f01601f191660200190565b5f60208284031215614cf2575f80fd5b81356001600160401b03811115614d07575f80fd5b8201601f81018413614d17575f80fd5b8035614d2a614d2582614cbc565b614c8c565b818152856020838501011115614d3e575f80fd5b816020840160208301375f91810160200191909152949350505050565b5f610180825184526020830151614d7d60208601826001600160a01b03169052565b5060408301516040850152606083015160608501526080830151608085015260a083015160a085015260c083015160c085015260e0830151614dca60e08601826001600160a01b03169052565b50610100808401518282870152614de383870182614909565b6101208681015190880152610140808701519088015261016095860151959096019490945250929392505050565b602081525f61245c6020830184614d5b565b6001600160a01b0381168114614a7a575f80fd5b5f805f60608486031215614e49575f80fd5b8335614e5481614e23565b95602085013595506040909401359392505050565b5f815180845260208085019450602084015f5b83811015614e9857815187529582019590820190600101614e7c565b509495945050505050565b8051151582526020810151602083015260408101516040830152606081015160608301526080810151608083015260a0810151614ee460a084018215159052565b5060c081015160c083015260e081015160e083015261010080820151614f0d8285018215159052565b5050610120818101511515908301526101408082015115159083015261016090810151910152565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614bab57601f19868403018952614f6e838351614d5b565b98840198925090830190600101614f52565b5f610520825184526020830151816020860152614f9f82860182614d5b565b9150506040830151604085015260608301518482036060860152614fc38282614ac6565b608085810151805188830152602081015160a0890152604081015160c0890152606081015160e08901529081015161010088015290925090505060a083015180516101208681019190915260208201516101408701526040820151610160870152606082015161018087015260c085015191506101a061504581880184614ea3565b60e0860151805161032089015260208101516001600160a01b031661034089015260408101516103608901526060810151610380890152608001516103a08801526101008601516103c0880152818601516103e088015261014086015161040088015261016086015161042088015261018086015187850361044089015292506150cf8484614e69565b935080860151925050508482036104608601526150ec8282614e69565b9150506101c08301518482036104808601526151088282614f35565b9150506101e08301518482036104a08601526151248282614b60565b9150506102008301518482036104c08601526151408282614934565b9150506102208301518482036104e086015261515c8282614a0c565b9150506102408301518482036105008601526112ac8282614a0c565b5f8282518085526020808601955060208260051b840101602086015f5b84811015614bab57601f198684030189526151b1838351614f80565b98840198925090830190600101615195565b604081525f6151d56040830185614e69565b82810360208401526112ac8185615178565b5f80604083850312156151f8575f80fd5b823561520381614e23565b9150602083013561521381614e23565b809150509250929050565b602081525f61245c6020830184614934565b60a08101611ce2828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b602081525f61245c6020830184614e69565b5f6020828403121561528b575f80fd5b813561245c81614e23565b602081525f61245c6020830184614a0c565b5f805f80608085870312156152bb575f80fd5b84359350602085013592506040850135915060608501356152db81614a6d565b939692955090935050565b602081525f825160a06020840152614bd360c0840182615178565b602081525f61245c6020830184614ac6565b5f805f60608486031215615325575f80fd5b8335925060208401359150604084013561533e81614a6d565b809150509250925092565b602081525f61245c6020830184614f80565b5f610340825184526020830151615376602086018215159052565b506040838101518582015260608085015181870152608080860151805182890152602081015160a08901529283015160c08801529082015160e08701528101516101008601525060a08301516101206153d181870183614ea3565b60c08501516102a087015260e08501516001600160a01b03166102c087015261010085015115156102e087015284015115156103008601525061014083015161032085018290526112ac82860182614e69565b602081525f61245c602083018461535b565b5f8060208385031215615447575f80fd5b82356001600160401b038082111561545d575f80fd5b818501915085601f830112615470575f80fd5b81358181111561547e575f80fd5b8660208260051b8501011115615492575f80fd5b60209290920196919550909350505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156154f957603f198886030184526154e785835161535b565b945092850192908501906001016154cb565b5092979650505050505050565b5f60208284031215615516575f80fd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611ce257611ce261551d565b8082028115828204841417611ce257611ce261551d565b80820180821115611ce257611ce261551d565b634e487b7160e01b5f52603260045260245ffd5b5f600182016155935761559361551d565b5060010190565b80516155a581614e23565b919050565b5f82601f8301126155b9575f80fd5b81516155c7614d2582614cbc565b8181528460208386010111156155db575f80fd5b6121e08260208301602087016148e7565b5f602082840312156155fc575f80fd5b81516001600160401b0380821115615612575f80fd5b908301906101808286031215615626575f80fd5b61562e614c1d565b8251815261563e6020840161559a565b602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015261568160e0840161559a565b60e08201526101008084015183811115615699575f80fd5b6156a5888287016155aa565b9183019190915250610120838101519082015261014080840151908201526101609283015192810192909252509392505050565b5f805f805f8060c087890312156156ee575f80fd5b86519550602087015161570081614e23565b604088015190955061571181614e23565b606088015190945061572281614e23565b809350506080870151915060a087015190509295509295509295565b5f6080828403121561574e575f80fd5b604051608081018181106001600160401b038211171561577057615770614c09565b8060405250825181526020830151602082015260408301516040820152606083015160608201528091505092915050565b5f60a082840312156157b1575f80fd5b60405160a081018181106001600160401b03821117156157d3576157d3614c09565b806040525080915082518152602083015160208201526040830151604082015260608301516060820152608083015160808201525092915050565b5f60a0828403121561581e575f80fd5b61245c83836157a1565b80516155a581614a6d565b5f6101808284031215615844575f80fd5b61584c614c1d565b905061585782615828565b81526020820151602082015260408201516040820152606082015160608201526080820151608082015261588d60a08301615828565b60a082015260c082015160c082015260e082015160e08201526101006158b4818401615828565b908201526101206158c6838201615828565b908201526101406158d8838201615828565b818301525061016080830151818301525092915050565b5f82601f8301126158fe575f80fd5b815160206001600160401b0382111561591957615919614c09565b8160051b615928828201614c8c565b9283528481018201928281019087851115615941575f80fd5b83870192505b8483101561596057825182529183019190830190615947565b979650505050505050565b5f6020828403121561597b575f80fd5b81516001600160401b0380821115615991575f80fd5b9083019061034082860312156159a5575f80fd5b6159ad614c46565b825181526159bd60208401615828565b602082015260408301516040820152606083015160608201526159e386608085016157a1565b60808201526101206159f787828601615833565b60a08301526102a084015160c0830152615a146102c0850161559a565b60e0830152615a266102e08501615828565b610100830152615a396103008501615828565b9082015261032083015182811115615a4f575f80fd5b615a5b878286016158ef565b6101408301525095945050505050565b5f60208284031215615a7b575f80fd5b81516001600160401b0380821115615a91575f80fd5b908301906101a08286031215615aa5575f80fd5b615aad614c69565b8251815260208301516020820152604083015160408201526060830151606082015260808301516080820152615ae560a0840161559a565b60a0820152615af660c0840161559a565b60c0820152615b0760e0840161559a565b60e082015261010083810151908201526101208084015190820152610140615b3081850161559a565b9082015261016083810151908201526101808084015183811115615b52575f80fd5b615b5e888287016155aa565b918301919091525095945050505050565b8281525f8251615b868160208501602087016148e7565b919091016020019392505050565b5f60208284031215615ba4575f80fd5b81516001600160401b03811115615bb9575f80fd5b6121e0848285016155aa565b5f60208284031215615bd5575f80fd5b815160ff8116811461245c575f80fd5b5f8251615bf68184602087016148e7565b9190910192915050565b602081525f61245c6020830184614909565b5f60208284031215615c22575f80fd5b81516001600160401b0380821115615c38575f80fd5b908301906101608286031215615c4c575f80fd5b615c54614c46565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015183811115615cb1575f80fd5b615cbd888287016155aa565b8284015250506101208084015183811115615cd6575f80fd5b615ce2888287016155aa565b91830191909152506101409283015192810192909252509392505050565b5f805f60608486031215615d12575f80fd5b835192506020840151615d2481614e23565b8092505060408401519050925092509256fea2646970667358221220168ffa641b6de1489e4a1e874610cf3b7bfd4aeba35337de08bcbfa56664d99764736f6c63430008180033