0 txs
564 calls
constructor
No constructor.
functions
activeBridge
viewfunction activeBridge() view returns (bytes32)
activeSwap
viewfunction activeSwap() view returns (bytes32)
bridgeParams
viewfunction bridgeParams() view returns (address bridge, bytes params)
bridgeToUse
viewfunction bridgeToUse(bytes32) view returns (string)
cowllector
viewfunction cowllector() view returns (bool sendFunds, address cowllector, uint256 amountCowllectorNeeds)
destinationAddress
viewfunction destinationAddress() view returns (address destination, bytes destinationBytes, string destinationString)
findHash
purefunction findHash(string _variable) pure returns (bytes32)
funds
viewfunction funds() view returns (address sender, bool fromInternalBalance, address recipient, bool toInternalBalance)
minBridgeAmount
viewfunction minBridgeAmount() view returns (uint256)
native
viewfunction native() view returns (address)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
stable
viewfunction stable() view returns (address)
swapKind
viewfunction swapKind() view returns (uint8)
swapParams
viewfunction swapParams() view returns (address router, bytes params)
swapToUse
viewfunction swapToUse(bytes32) view returns (string)
bridgeAxelar
nonpayablefunction bridgeAxelar()
bridgeCircle
nonpayablefunction bridgeCircle()
bridgeStargate
nonpayablefunction bridgeStargate()
bridgeSynapse
nonpayablefunction bridgeSynapse()
bridgezkEVM
nonpayablefunction bridgezkEVM()
bridgezkSync
nonpayablefunction bridgezkSync()
harvest
nonpayablefunction harvest()
inCaseTokensGetStuck
nonpayablefunction inCaseTokensGetStuck(address _token, bool _native)
initialize
nonpayablefunction initialize()
renounceOwnership
nonpayablefunction renounceOwnership()
setActiveBridge
nonpayablefunction setActiveBridge(bytes32 _bridgeHash, tuple _params)
setActiveSwap
nonpayablefunction setActiveSwap(bytes32 _swapHash, tuple _params)
setCowllector
nonpayablefunction setCowllector(tuple _cowllector)
setDestinationAddress
nonpayablefunction setDestinationAddress(tuple _destination)
setMinBridgeAmount
nonpayablefunction setMinBridgeAmount(uint256 _amount)
setStable
nonpayablefunction setStable(address _stable, address _native)
setSwapHash
nonpayablefunction setSwapHash(string _hash, string _variable)
swapAlgebra
nonpayablefunction swapAlgebra()
swapBalancer
nonpayablefunction swapBalancer()
swapBeefy
nonpayablefunction swapBeefy()
swapSolidly
nonpayablefunction swapSolidly()
swapUniV2
nonpayablefunction swapUniV2()
swapUniV3
nonpayablefunction swapUniV3()
swapUniV3Deadline
nonpayablefunction swapUniV3Deadline()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Bridged
event Bridged(address indexed stable, uint256 stableBridged)
CowllectorRefill
event CowllectorRefill(uint256 amount)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetBridge
event SetBridge(bytes32 bridge, (address bridge, bytes params) params)
SetDestinationAddress
event SetDestinationAddress((address destination, bytes destinationBytes, string destinationString) destinationAddress)
SetMinBridgeAmount
event SetMinBridgeAmount(uint256 amount)
SetStable
event SetStable(address oldStable, address newStable)
SetSwap
event SetSwap(bytes32 swap, (address router, bytes params) params)
Upgraded
event Upgraded(address indexed implementation)
errors
BridgeError
error BridgeError()
FailedToSendEther
error FailedToSendEther()
IncorrectRoute
error IncorrectRoute()
NotAuthorized
error NotAuthorized()
NotEnoughEth
error NotEnoughEth()
SwapError
error SwapError()
creation bytecode
0x60a06040523060805234801561001457600080fd5b50608051615def6200004d60003960008181610e4701528181610e9001528181610f5901528181610f9901526112b20152615def6000f3fe6080604052600436106102605760003560e01c80638129fc1c11610144578063c4b00c4f116100b6578063d7d66e711161007a578063d7d66e7114610714578063ee63c1e514610734578063f2fde38b14610749578063f3f1a71a14610769578063fe8d1ab014610789578063ff33d21f1461079e57600080fd5b8063c4b00c4f14610635578063c89f2ce414610655578063ca325469146106c6578063cc5ea4ef146106ea578063d49b6408146106ff57600080fd5b8063a5131aaa11610108578063a5131aaa1461056c578063b54653fb14610581578063b9f39147146105d5578063bac86af5146105ea578063bce4547a1461060a578063c3c224751461061f57600080fd5b80638129fc1c146104ea578063873d80ec146104ff5780638da5cb5b14610522578063943f8e96146105405780639c345b9f1461055657600080fd5b80635066a747116101dd578063671f6a26116101a1578063671f6a26146104375780636ae407111461045e5780636d0a68911461047357806370c75107146104a0578063715018a6146104c0578063748b3c05146104d557600080fd5b80635066a747146103aa5780635109d8b6146103ca57806352d1902d146103df578063530728d51461040257806364e510a11461041757600080fd5b806322be3de11161022457806322be3de114610322578063284eb663146103425780633659cfe6146103625780634641257d146103825780634f1ef2861461039757600080fd5b80630278fb8a14610286578063057d1ae31461029b5780630d1f7833146102b057806311b0b42d146102c55780631610ee401461030257600080fd5b366102815760cd546001600160a01b0316331461027f5761027f6145c4565b005b600080fd5b34801561029257600080fd5b5061027f6107be565b3480156102a757600080fd5b5061027f610950565b3480156102bc57600080fd5b5061027f610bb5565b3480156102d157600080fd5b5060cd546102e5906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561030e57600080fd5b5061027f61031d3660046145ec565b610d9a565b34801561032e57600080fd5b5060cc546102e5906001600160a01b031681565b34801561034e57600080fd5b5061027f61035d366004614668565b610deb565b34801561036e57600080fd5b5061027f61037d3660046146e8565b610e3d565b34801561038e57600080fd5b5061027f610f25565b61027f6103a536600461479a565b610f4f565b3480156103b657600080fd5b5061027f6103c536600461483e565b61101f565b3480156103d657600080fd5b5061027f6110b2565b3480156103eb57600080fd5b506103f46112a5565b6040519081526020016102f9565b34801561040e57600080fd5b5061027f611358565b34801561042357600080fd5b5061027f61043236600461483e565b611445565b34801561044357600080fd5b5060c9546104519060ff1681565b6040516102f991906148a6565b34801561046a57600080fd5b5061027f6114d3565b34801561047f57600080fd5b5061049361048e3660046148b4565b6116b9565b6040516102f9919061491d565b3480156104ac57600080fd5b506103f46104bb366004614930565b611753565b3480156104cc57600080fd5b5061027f611787565b3480156104e157600080fd5b5061027f611799565b3480156104f657600080fd5b5061027f611909565b34801561050b57600080fd5b50610514611a81565b6040516102f9929190614971565b34801561052e57600080fd5b506033546001600160a01b03166102e5565b34801561054c57600080fd5b506103f460cf5481565b34801561056257600080fd5b506103f460ce5481565b34801561057857600080fd5b5061027f611b22565b34801561058d57600080fd5b5060d05460d1546105b09160ff8116916101009091046001600160a01b03169083565b6040805193151584526001600160a01b039092166020840152908201526060016102f9565b3480156105e157600080fd5b5061027f611b8e565b3480156105f657600080fd5b5061027f6106053660046149a3565b611d1a565b34801561061657600080fd5b5061027f611e14565b34801561062b57600080fd5b506103f460d95481565b34801561064157600080fd5b5061027f6106503660046149dc565b612028565b34801561066157600080fd5b5060ca5460cb54610691916001600160a01b038082169260ff600160a01b93849004811693928216929091041684565b6040516102f994939291906001600160a01b039485168152921515602084015292166040820152901515606082015260800190565b3480156106d257600080fd5b506106db61203d565b6040516102f9939291906149f8565b3480156106f657600080fd5b5061027f61216c565b34801561070b57600080fd5b50610514612307565b34801561072057600080fd5b5061027f61072f3660046148b4565b612325565b34801561074057600080fd5b5061027f612365565b34801561075557600080fd5b5061027f6107643660046146e8565b6124f1565b34801561077557600080fd5b506104936107843660046148b4565b612567565b34801561079557600080fd5b5061027f612580565b3480156107aa57600080fd5b5061027f6107b9366004614a2e565b612709565b6107c66127e5565b600060d460010180546107d890614a5c565b80601f016020809104026020016040519081016040528092919081815260200182805461080490614a5c565b80156108515780601f1061082657610100808354040283529160200191610851565b820191906000526020600020905b81548152906001019060200180831161083457829003601f168201915b50505050508060200190518101906108699190614b22565b60cd5481519192506001600160a01b031690829060009061088c5761088c614b56565b60200260200101516001600160a01b0316146108bb576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906108da90600190614b82565b815181106108ea576108ea614b56565b60200260200101516001600160a01b031614610919576040516376c252e160e11b815260040160405180910390fd5b600061092482612805565b905060006109306128be565b60d45490915061094a906001600160a01b03168383612931565b50505050565b6109586127e5565b600060d2600101805461096a90614a5c565b80601f016020809104026020016040519081016040528092919081815260200182805461099690614a5c565b80156109e35780601f106109b8576101008083540402835291602001916109e3565b820191906000526020600020905b8154815290600101906020018083116109c657829003601f168201915b50505050508060200190518101906109fb9190614b95565b905060006040518060600160405280836020015181526020016000815260200160405180604001604052806002815260200161060f60f31b81525081525090506000610ad9836000015160d66001018054610a5590614a5c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8190614a5c565b8015610ace5780601f10610aa357610100808354040283529160200191610ace565b820191906000526020600020905b815481529060010190602001808311610ab157829003601f168201915b5050505050846129d2565b9050610ae481612a53565b610aec612ac6565b6000610af6612b27565b905060d954811115610b7f5760d2548451604080870151606088015191516327efc43f60e21b81526001600160a01b0390941693639fbf10fc938793610b4c939192309089906000908d9060d790600401614cb0565b6000604051808303818588803b158015610b6557600080fd5b505af1158015610b79573d6000803e3d6000fd5b50505050505b60cc546040518281526001600160a01b0390911690600080516020615d538339815191529060200160405180910390a250505050565b610bbd6127e5565b60008060d46001018054610bd090614a5c565b80601f0160208091040260200160405190810160405280929190818152602001828054610bfc90614a5c565b8015610c495780601f10610c1e57610100808354040283529160200191610c49565b820191906000526020600020905b815481529060010190602001808311610c2c57829003601f168201915b5050505050806020019051810190610c619190614d2a565b60cd5481519294509092506001600160a01b0316908290600090610c8757610c87614b56565b60200260200101516001600160a01b031614610cb6576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290610cd590600190614b82565b81518110610ce557610ce5614b56565b60200260200101516001600160a01b031614610d14576040516376c252e160e11b815260040160405180910390fd5b6000610d1e6128be565b90506000610d2c8483612b58565b60d45460c9546040805160808101825260ca546001600160a01b03808216835260ff600160a01b9283900481161515602085015260cb548083169585019590955291909304811615156060830152949550610d939491909316929116908490879087612d61565b5050505050565b610da2612eab565b7f518f47fcfba5d9b707c3387a7fa4301136192d8091a43ea13ae8db7275ab5d3a81604051610dd19190614e76565b60405180910390a18060d6610de6828261505b565b505050565b610df3612eab565b818160dc60008787604051602001610e0c929190615154565b6040516020818303038152906040528051906020012081526020019081526020016000209182610d93929190614fa2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610e8e5760405162461bcd60e51b8152600401610e8590615168565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ed7600080516020615d73833981519152546001600160a01b031690565b6001600160a01b031614610efd5760405162461bcd60e51b8152600401610e85906151b4565b610f0681612f05565b60408051600080825260208201909252610f2291839190612f0d565b50565b610f2d613078565b610f356130e9565b6000610f3f6128be565b1115610f4d57610f4d613222565b565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f975760405162461bcd60e51b8152600401610e8590615168565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fe0600080516020615d73833981519152546001600160a01b031690565b6001600160a01b0316146110065760405162461bcd60e51b8152600401610e85906151b4565b61100f82612f05565b61101b82826001612f0d565b5050565b611027612eab565b7f25f7dd6fc737add5174192a11292dfd270c1397f9c4f641fb6336a208b5efbed8282604051611058929190615243565b60405180910390a160cd5460d45461107c916001600160a01b039081169116613252565b60cf8290558060d461108e8282615338565b505060cd5461101b906001600160a01b03166110ad60208401846146e8565b6132e1565b6110ba6127e5565b600060d460010180546110cc90614a5c565b80601f01602080910402602001604051908101604052809291908181526020018280546110f890614a5c565b80156111455780601f1061111a57610100808354040283529160200191611145565b820191906000526020600020905b81548152906001019060200180831161112857829003601f168201915b505050505080602001905181019061115d9190615342565b9050600061116a8261336e565b60cd5481519192506001600160a01b031690829060009061118d5761118d614b56565b60200260200101516001600160a01b0316146111bc576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906111db90600190614b82565b815181106111eb576111eb614b56565b60200260200101516001600160a01b03161461121a576040516376c252e160e11b815260040160405180910390fd5b60006112246128be565b60d454604051631e82ecdb60e31b81529192506001600160a01b03169063f41766d89061125e90849060009088903090429060040161541a565b6000604051808303816000875af115801561127d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261094a91908101906154af565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113455760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610e85565b50600080516020615d7383398151915290565b6113606127e5565b611368612ac6565b6000611372612b27565b905060d9548111156114125760d25460d65460cc5460405163cd58657960e01b81526000600482018190526001600160a01b0393841660248301526044820186905291831660648201526001608482015260c060a482015260c481019190915291169063cd5865799060e4015b600060405180830381600087803b1580156113f957600080fd5b505af115801561140d573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615d538339815191529060200160405180910390a250565b61144d612eab565b7f5e355369ceaccb04ff615500f99b96912ce9f237ed35ae521487c19064e2318d828260405161147e929190615243565b60405180910390a160cc5460d2546114a2916001600160a01b039081169116613252565b60ce8290558060d26114b48282615338565b505060cc5461101b906001600160a01b03166110ad60208401846146e8565b6114db6127e5565b600060d460010180546114ed90614a5c565b80601f016020809104026020016040519081016040528092919081815260200182805461151990614a5c565b80156115665780601f1061153b57610100808354040283529160200191611566565b820191906000526020600020905b81548152906001019060200180831161154957829003601f168201915b505050505080602001905181019061157e9190614b22565b60cd5481519192506001600160a01b03169082906000906115a1576115a1614b56565b60200260200101516001600160a01b0316146115d0576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906115ef90600190614b82565b815181106115ff576115ff614b56565b60200260200101516001600160a01b03161461162e576040516376c252e160e11b815260040160405180910390fd5b60006116386128be565b60d4546040516338ed173960e01b81529192506001600160a01b0316906338ed173990611672908490600090879030904290600401615583565b6000604051808303816000875af1158015611691573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610de691908101906154af565b60db60205260009081526040902080546116d290614a5c565b80601f01602080910402602001604051908101604052809291908181526020018280546116fe90614a5c565b801561174b5780601f106117205761010080835404028352916020019161174b565b820191906000526020600020905b81548152906001019060200180831161172e57829003601f168201915b505050505081565b60008282604051602001611768929190615154565b6040516020818303038152906040528051906020012090505b92915050565b61178f612eab565b610f4d600061348c565b6117a16127e5565b600060d260010180546117b390614a5c565b80601f01602080910402602001604051908101604052809291908181526020018280546117df90614a5c565b801561182c5780601f106118015761010080835404028352916020019161182c565b820191906000526020600020905b81548152906001019060200180831161180f57829003601f168201915b5050505050806020019051810190611844919061560f565b905061184e612ac6565b6000611858612b27565b905060d9548111156118d45760d254825160208401516040516326ef699d60e01b81526001600160a01b03909316926326ef699d926118a192909160d8919087906004016156b5565b600060405180830381600087803b1580156118bb57600080fd5b505af11580156118cf573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615d53833981519152906020015b60405180910390a25050565b600054610100900460ff16158080156119295750600054600160ff909116105b806119435750303b158015611943575060005460ff166001145b6119a65760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e85565b6000805460ff1916600117905580156119c9576000805461ff0019166101001790555b6119d16134de565b6119d961350d565b6119e1613834565b604080516080810182523080825260006020830181905292820181905260609091019190915260ca805460ff60a01b199092166001600160a81b0319928316811790915560cb805490921617905560c9805460ff191690558015610f22576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60d4805460d580546001600160a01b039092169291611a9f90614a5c565b80601f0160208091040260200160405190810160405280929190818152602001828054611acb90614a5c565b8015611b185780601f10611aed57610100808354040283529160200191611b18565b820191906000526020600020905b815481529060010190602001808311611afb57829003601f168201915b5050505050905082565b611b2a6127e5565b611b32612ac6565b6000611b3c612b27565b905060d9548111156114125760d25460d65460cc54604051636ce5768960e11b81526001600160a01b03928316600482015290821660248201526044810184905291169063d9caed12906064016113df565b611b966127e5565b600060d46001018054611ba890614a5c565b80601f0160208091040260200160405190810160405280929190818152602001828054611bd490614a5c565b8015611c215780601f10611bf657610100808354040283529160200191611c21565b820191906000526020600020905b815481529060010190602001808311611c0457829003601f168201915b5050505050806020019051810190611c399190615700565b90506000611c4682613b3d565b60cd5481519192506001600160a01b0316908290600090611c6957611c69614b56565b60200260200101516001600160a01b031614611c98576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290611cb790600190614b82565b81518110611cc757611cc7614b56565b60200260200101516001600160a01b031614611cf6576040516376c252e160e11b815260040160405180910390fd5b6000611d006128be565b60d45490915061094a906001600160a01b03168483612931565b611d22612eab565b8015611d93576040514790600090339083908381818185875af1925050503d8060008114611d6c576040519150601f19603f3d011682016040523d82523d6000602084013e611d71565b606091505b505090508061094a57604051630dcf35db60e41b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfe9190615748565b9050610de66001600160a01b0384163383613c40565b611e1c6127e5565b600060d46001018054611e2e90614a5c565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5a90614a5c565b8015611ea75780601f10611e7c57610100808354040283529160200191611ea7565b820191906000526020600020905b815481529060010190602001808311611e8a57829003601f168201915b5050505050806020019051810190611ebf9190614b22565b60cd5481519192506001600160a01b0316908290600090611ee257611ee2614b56565b60200260200101516001600160a01b031614611f11576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906001908110611f3557611f35614b56565b60200260200101516001600160a01b031614611f64576040516376c252e160e11b815260040160405180910390fd5b6000611f6e6128be565b60d45483519192506001600160a01b03169063df791e50908490600090611f9757611f97614b56565b602002602001015184600181518110611fb257611fb2614b56565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101849052606401600060405180830381600087803b15801561200c57600080fd5b505af1158015612020573d6000803e3d6000fd5b505050505050565b612030612eab565b8060d0610de68282615761565b60d6805460d780546001600160a01b03909216929161205b90614a5c565b80601f016020809104026020016040519081016040528092919081815260200182805461208790614a5c565b80156120d45780601f106120a9576101008083540402835291602001916120d4565b820191906000526020600020905b8154815290600101906020018083116120b757829003601f168201915b5050505050908060020180546120e990614a5c565b80601f016020809104026020016040519081016040528092919081815260200182805461211590614a5c565b80156121625780601f1061213757610100808354040283529160200191612162565b820191906000526020600020905b81548152906001019060200180831161214557829003601f168201915b5050505050905083565b6121746127e5565b600060d2600101805461218690614a5c565b80601f01602080910402602001604051908101604052809291908181526020018280546121b290614a5c565b80156121ff5780601f106121d4576101008083540402835291602001916121ff565b820191906000526020600020905b8154815290600101906020018083116121e257829003601f168201915b505050505080602001905181019061221791906157d5565b9050612221612ac6565b600061222b612b27565b905060d9548111156118d45760d25460d6548351606085015160208601516040870151608088015160a08901516001600160a01b0397881697639f33072797169594939291899160009142918361228484610e1061586e565b6040516001600160e01b031960e08f901b1681526001600160a01b039c8d166004820152602481019b909b529a90981660448a015260ff96871660648a0152948616608489015260a488019390935260c487019190915260e4860152821661010485015216610124830152610144820152610164810191909152610184016118a1565b60d2805460d380546001600160a01b039092169291611a9f90614a5c565b61232d612eab565b6040518181527ff4f47d85dc8207b9d9c6dfd289d4f5008b33df899eda3da90658d75c351e54759060200160405180910390a160d955565b61236d6127e5565b600060d4600101805461237f90614a5c565b80601f01602080910402602001604051908101604052809291908181526020018280546123ab90614a5c565b80156123f85780601f106123cd576101008083540402835291602001916123f8565b820191906000526020600020905b8154815290600101906020018083116123db57829003601f168201915b50505050508060200190518101906124109190615700565b9050600061241d82613b3d565b60cd5481519192506001600160a01b031690829060009061244057612440614b56565b60200260200101516001600160a01b03161461246f576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061248e90600190614b82565b8151811061249e5761249e614b56565b60200260200101516001600160a01b0316146124cd576040516376c252e160e11b815260040160405180910390fd5b60006124d76128be565b60d45490915061094a906001600160a01b03168483613ca3565b6124f9612eab565b6001600160a01b03811661255e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e85565b610f228161348c565b60dc60205260009081526040902080546116d290614a5c565b6125886127e5565b600060d2600101805461259a90614a5c565b80601f01602080910402602001604051908101604052809291908181526020018280546125c690614a5c565b80156126135780601f106125e857610100808354040283529160200191612613565b820191906000526020600020905b8154815290600101906020018083116125f657829003601f168201915b505050505080602001905181019061262b9190615881565b9050612635612ac6565b600061263f612b27565b905060d9548111156118d45760d25460d65460cc546040516337e9a82760e11b81526004810185905263ffffffff861660248201526001600160a01b0392831660448201529082166064820152911690636fd3504e906084016020604051808303816000875af11580156126b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126db91906158a7565b5060cc546040518281526001600160a01b0390911690600080516020615d53833981519152906020016118fd565b612711612eab565b60da5460ff166127565760cc80546001600160a01b039384166001600160a01b03199182161790915560cd805492909316911617905560da805460ff19166001179055565b60cc54604080516001600160a01b03928316815291841660208301527f4239efeca0761c0d170bd15a6e85542dbe0376ba0f5f1551b39c6045866ff735910160405180910390a160cc5460d2546127b9916001600160a01b039081169116613252565b60cc80546001600160a01b0319166001600160a01b0384811691821790925560d25461101b92166132e1565b333014610f4d5760405163ea8e4eb560e01b815260040160405180910390fd5b60608160008151811061281a5761281a614b56565b602002602001015160405160200161284a919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152919052905060015b82518110156128b8578183828151811061287b5761287b614b56565b60200260200101516040516020016128949291906158d0565b604051602081830303815290604052915080806128b090615907565b91505061285f565b50919050565b60cd546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024015b602060405180830381865afa158015612908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292c9190615748565b905090565b6040805160a081018252838152306020820152428183015260608101839052600060808201819052915163c04b8d5960e01b81526001600160a01b0386169063c04b8d5990612984908490600401615920565b6020604051808303816000875af11580156129a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c79190615748565b9150505b9392505050565b60d254604051630a51236960e01b81526000916001600160a01b031690630a51236990612a0a90879060019088908890600401615978565b6040805180830381865afa158015612a26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4a91906159c2565b50949350505050565b6000612a5d6128be565b905081811061101b5760cd54604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015612aac57600080fd5b505af1925050508015612abd575060015b1561101b575050565b60cf54600090815260dc6020526040908190208151600481526024810192839052610f22929091612af6916159e6565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790523090613cf0565b60cc546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024016128eb565b6060600083516001600160401b03811115612b7557612b75614705565b604051908082528060200260200182016040528015612bdb57816020015b612bc86040518060a0016040528060008019168152602001600081526020016000815260200160008152602001606081525090565b815260200190600190039081612b935790505b50905060005b8451811015612d595780600003612ca5576040518060a0016040528086600081518110612c1057612c10614b56565b602002602001015160000151815260200186600081518110612c3457612c34614b56565b602002602001015160200151815260200186600081518110612c5857612c58614b56565b60200260200101516040015181526020018581526020016040518060200160405280600081525081525082600081518110612c9557612c95614b56565b6020026020010181905250612d51565b6040518060a00160405280868381518110612cc257612cc2614b56565b6020026020010151600001518152602001868381518110612ce557612ce5614b56565b6020026020010151602001518152602001868381518110612d0857612d08614b56565b60200260200101516040015181526020016000815260200160405180602001604052806000815250815250828281518110612d4557612d45614b56565b60200260200101819052505b600101612be1565b509392505050565b6060600084516001600160401b03811115612d7e57612d7e614705565b604051908082528060200260200182016040528015612da7578160200160208202803683370190505b50905060005b8551811015612e215780600003612de3578382600081518110612dd257612dd2614b56565b602002602001018181525050612e19565b60018651612df19190614b82565b8103612e1957600019828281518110612e0c57612e0c614b56565b6020026020010181815250505b600101612dad565b5060405163945bcec960e01b81526001600160a01b0389169063945bcec990612e58908a908a908a908a9088904290600401615a8c565b6000604051808303816000875af1158015612e77573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e9f91908101906154af565b98975050505050505050565b6033546001600160a01b03163314610f4d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e85565b610f22612eab565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612f4057610de683613d34565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612f9a575060408051601f3d908101601f19168201909252612f9791810190615748565b60015b612ffd5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610e85565b600080516020615d73833981519152811461306c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610e85565b50610de6838383613dd0565b478015610f225760cd60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0476040518263ffffffff1660e01b81526004016000604051808303818588803b1580156130cf57600080fd5b505af1935050505080156130e1575060015b15610f225750565b60d05460ff1615610f4d5760cd5460d0546040516370a0823160e01b81526101009091046001600160a01b03908116600483015260009216906370a0823190602401602060405180830381865afa158015613148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316c9190615748565b60d054613188919061010090046001600160a01b03163161586e565b60d154909150811015610f2257600061319f6128be565b905060008260d0600101546131b49190614b82565b90508181116131c357806131c5565b815b60d05460cd549192506131ea916001600160a01b039081169161010090041683613c40565b6040518181527feb722ef3dbafc24e43f4627f9b306563a93d546865b49eb1e64fbaffdab73d5c9060200160405180910390a1505050565b60ce54600090815260db6020526040908190208151600481526024810192839052610f22929091612af6916159e6565b604051636eb1769f60e11b81523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156132a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132c69190615748565b111561101b5761101b6001600160a01b038316826000613df5565b604051636eb1769f60e11b81523060048201526001600160a01b03828116602483015283169063dd62ed3e90604401602060405180830381865afa15801561332d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133519190615748565b60000361101b5761101b6001600160a01b03831682600019613df5565b6060600082516001613380919061586e565b6001600160401b0381111561339757613397614705565b6040519080825280602002602001820160405280156133c0578160200160208202803683370190505b509050826000815181106133d6576133d6614b56565b602002602001015160000151816000815181106133f5576133f5614b56565b60200260200101906001600160a01b031690816001600160a01b03168152505060005b83518110156134855783818151811061343357613433614b56565b6020026020010151602001518282600161344d919061586e565b8151811061345d5761345d614b56565b6001600160a01b039092166020928302919091019091015261347e81615907565b9050613418565b5092915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166135055760405162461bcd60e51b8152600401610e8590615ba5565b610f4d613f0a565b6040518060400160405280600e81526020016d627269646765436972636c65282960901b81525060db600060405160200161356290602080825260069082015265434952434c4560d01b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816135929190615bf0565b506040518060400160405280601081526020016f6272696467655374617267617465282960801b81525060db60006040516020016135ec90602080825260089082015267535441524741544560c01b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161361c9190615bf0565b506040518060400160405280600e81526020016d6272696467654178656c6172282960901b81525060db60006040516020016136729060208082526006908201526520ac22a620a960d11b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816136a29190615bf0565b506040518060400160405280600f81526020016e62726964676553796e61707365282960881b81525060db60006040516020016136fa9060208082526007908201526653594e4150534560c81b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161372a9190615bf0565b506040518060400160405280600d81526020016c6272696467657a6b45564d282960981b81525060db600060405160200161377e906020808252600590820152647a6b45564d60d81b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816137ae9190615bf0565b506040518060400160405280600e81526020016d6272696467657a6b53796e63282960901b81525060db6000604051602001613804906020808252600690820152657a6b53594e4360d01b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081610f229190615bf0565b6040518060400160405280600b81526020016a73776170556e695632282960a81b81525060dc600060405160200161388a906020808252600a90820152692aa724a9aba0a82fab1960b11b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816138ba9190615bf0565b506040518060400160405280600d81526020016c73776170536f6c69646c79282960981b81525060dc600060405160200161391090602080825260079082015266534f4c49444c5960c81b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816139409190615bf0565b506040518060400160405280600b81526020016a73776170556e695633282960a81b81525060dc6000604051602001613997906020808252600a9082015269554e49535741505f563360b01b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816139c79190615bf0565b506040518060400160405280601381526020017273776170556e695633446561646c696e65282960681b81525060dc6000604051602001613a2f90602080825260139082015272554e49535741505f56335f444541444c494e4560681b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613a5f9190615bf0565b506040518060400160405280600d81526020016c73776170416c6765627261282960981b81525060dc6000604051602001613ab590602080825260079082015266414c474542524160c81b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613ae59190615bf0565b506040518060400160405280600e81526020016d7377617042616c616e636572282960901b81525060dc6000604051602001613804906020808252600890820152672120a620a721a2a960c11b604082015260600190565b60606000613b4a83613f3a565b90506000613b5982600161586e565b6001600160401b03811115613b7057613b70614705565b604051908082528060200260200182016040528015613b99578160200160208202803683370190505b50905060005b82811015612d5957600080613bb387613f60565b509150915081848481518110613bcb57613bcb614b56565b6001600160a01b03909216602092830291909101909101528084613bf085600161586e565b81518110613c0057613c00614b56565b60200260200101906001600160a01b031690816001600160a01b031681525050613c2987613f9c565b965050508080613c3890615907565b915050613b9f565b6040516001600160a01b038316602482015260448101829052610de690849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613fcd565b60408051608081018252838152306020820152808201839052600060608201819052915163b858183f60e01b81526001600160a01b0386169063b858183f90612984908490600401615ca9565b60606129cb838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c656400008152506140a2565b6001600160a01b0381163b613da15760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610e85565b600080516020615d7383398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613dd98361417f565b600082511180613de65750805b15610de65761094a83836141bf565b801580613e6f5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613e49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e6d9190615748565b155b613eda5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610e85565b6040516001600160a01b038316602482015260448101829052610de690849063095ea7b360e01b90606401613c6c565b600054610100900460ff16613f315760405162461bcd60e51b8152600401610e8590615ba5565b610f4d3361348c565b6000613f486003601461586e565b60148351613f569190614b82565b6117819190615cf7565b60008080613f6e84826141e4565b9250613f7b846014614298565b9050613f93613f8c6003601461586e565b85906141e4565b91509193909250565b6060611781613fad6003601461586e565b613fb96003601461586e565b8451613fc59190614b82565b849190614343565b6000614022826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661449a9092919063ffffffff16565b90508051600014806140435750808060200190518101906140439190615d19565b610de65760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610e85565b6060824710156141035760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610e85565b600080866001600160a01b0316858760405161411f9190615d36565b60006040518083038185875af1925050503d806000811461415c576040519150601f19603f3d011682016040523d82523d6000602084013e614161565b606091505b5091509150614172878383876144a9565b925050505b949350505050565b61418881613d34565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606129cb8383604051806060016040528060278152602001615d9360279139614522565b6000816141f281601461586e565b10156142355760405162461bcd60e51b8152602060048201526012602482015271746f416464726573735f6f766572666c6f7760701b6044820152606401610e85565b61424082601461586e565b835110156142885760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610e85565b500160200151600160601b900490565b6000816142a681600361586e565b10156142e85760405162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b6044820152606401610e85565b6142f382600361586e565b8351101561433a5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606401610e85565b50016003015190565b60608161435181601f61586e565b10156143905760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610e85565b8261439b838261586e565b10156143da5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610e85565b6143e4828461586e565b845110156144285760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610e85565b6060821580156144475760405191506000825260208201604052612a4a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015614480578051835260209283019201614468565b5050858452601f01601f1916604052505090509392505050565b606061417784846000856140a2565b60608315614518578251600003614511576001600160a01b0385163b6145115760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e85565b5081614177565b614177838361459a565b6060600080856001600160a01b03168560405161453f9190615d36565b600060405180830381855af49150503d806000811461457a576040519150601f19603f3d011682016040523d82523d6000602084013e61457f565b606091505b5091509150614590868383876144a9565b9695505050505050565b8151156145aa5781518083602001fd5b8060405162461bcd60e51b8152600401610e85919061491d565b634e487b7160e01b600052600160045260246000fd5b6000606082840312156128b857600080fd5b6000602082840312156145fe57600080fd5b81356001600160401b0381111561461457600080fd5b614177848285016145da565b60008083601f84011261463257600080fd5b5081356001600160401b0381111561464957600080fd5b60208301915083602082850101111561466157600080fd5b9250929050565b6000806000806040858703121561467e57600080fd5b84356001600160401b038082111561469557600080fd5b6146a188838901614620565b909650945060208701359150808211156146ba57600080fd5b506146c787828801614620565b95989497509550505050565b6001600160a01b0381168114610f2257600080fd5b6000602082840312156146fa57600080fd5b81356129cb816146d3565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561473d5761473d614705565b60405290565b604051601f8201601f191681016001600160401b038111828210171561476b5761476b614705565b604052919050565b60006001600160401b0382111561478c5761478c614705565b50601f01601f191660200190565b600080604083850312156147ad57600080fd5b82356147b8816146d3565b915060208301356001600160401b038111156147d357600080fd5b8301601f810185136147e457600080fd5b80356147f76147f282614773565b614743565b81815286602083850101111561480c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000604082840312156128b857600080fd5b6000806040838503121561485157600080fd5b8235915060208301356001600160401b0381111561486e57600080fd5b61487a8582860161482c565b9150509250929050565b600281106148a257634e487b7160e01b600052602160045260246000fd5b9052565b602081016117818284614884565b6000602082840312156148c657600080fd5b5035919050565b60005b838110156148e85781810151838201526020016148d0565b50506000910152565b600081518084526149098160208601602086016148cd565b601f01601f19169290920160200192915050565b6020815260006129cb60208301846148f1565b6000806020838503121561494357600080fd5b82356001600160401b0381111561495957600080fd5b61496585828601614620565b90969095509350505050565b6001600160a01b0383168152604060208201819052600090614177908301846148f1565b8015158114610f2257600080fd5b600080604083850312156149b657600080fd5b82356149c1816146d3565b915060208301356149d181614995565b809150509250929050565b6000606082840312156149ee57600080fd5b6129cb83836145da565b6001600160a01b0384168152606060208201819052600090614a1c908301856148f1565b828103604084015261459081856148f1565b60008060408385031215614a4157600080fd5b8235614a4c816146d3565b915060208301356149d1816146d3565b600181811c90821680614a7057607f821691505b6020821081036128b857634e487b7160e01b600052602260045260246000fd5b60006001600160401b03821115614aa957614aa9614705565b5060051b60200190565b600082601f830112614ac457600080fd5b81516020614ad46147f283614a90565b82815260059290921b84018101918181019086841115614af357600080fd5b8286015b84811015614b17578051614b0a816146d3565b8352918301918301614af7565b509695505050505050565b600060208284031215614b3457600080fd5b81516001600160401b03811115614b4a57600080fd5b61417784828501614ab3565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561178157611781614b6c565b600060808284031215614ba757600080fd5b604051608081018181106001600160401b0382111715614bc957614bc9614705565b604052825161ffff81168114614bde57600080fd5b808252506020830151602082015260408301516040820152606083015160608201528091505092915050565b8051825260208101516020830152600060408201516060604085015261417760608501826148f1565b60008154614c4081614a5c565b808552602060018381168015614c5d5760018114614c7757614ca5565b60ff1985168884015283151560051b880183019550614ca5565b866000528260002060005b85811015614c9d5781548a8201860152908301908401614c82565b890184019650505b505050505092915050565b600061012061ffff8b16835289602084015288604084015260018060a01b03881660608401528660808401528560a08401528060c0840152614cf481840186614c0a565b905082810360e0840152614d088185614c33565b8381036101009094019390935250506000815260200198975050505050505050565b6000806040808486031215614d3e57600080fd5b83516001600160401b0380821115614d5557600080fd5b818601915086601f830112614d6957600080fd5b81516020614d796147f283614a90565b8281526060928302850182019282820191908b851115614d9857600080fd5b958301955b84871015614de05780878d031215614db55760008081fd5b614dbd61471b565b875181528488015185820152888801518982015283529586019591830191614d9d565b5091890151919750909450505080831115614dfa57600080fd5b505061487a85828601614ab3565b6000808335601e19843603018112614e1f57600080fd5b83016020810192503590506001600160401b03811115614e3e57600080fd5b80360382131561466157600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260008235614e87816146d3565b6001600160a01b0316602083810191909152614ea590840184614e08565b60606040850152614eba608085018284614e4d565b915050614eca6040850185614e08565b848303601f19016060860152614590838284614e4d565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000808335601e19843603018112614f1857600080fd5b8301803591506001600160401b03821115614f3257600080fd5b60200191503681900382131561466157600080fd5b601f821115610de657600081815260208120601f850160051c81016020861015614f6e5750805b601f850160051c820191505b8181101561202057828155600101614f7a565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614fb957614fb9614705565b614fcd83614fc78354614a5c565b83614f47565b6000601f841160018114614ffb5760008515614fe95750838201355b614ff38682614f8d565b845550610d93565b600083815260209020601f19861690835b8281101561502c578685013582556020948501946001909201910161500c565b50868210156150495760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b8135615066816146d3565b6150708183614ee1565b506001808201602061508481860186614f01565b6001600160401b0381111561509b5761509b614705565b6150af816150a98654614a5c565b86614f47565b6000601f8211600181146150dd57600083156150cb5750838201355b6150d58482614f8d565b875550615132565b600086815260209020601f19841690835b8281101561510b57868501358255938701939089019087016150ee565b50848210156151285760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050506151466040830183614f01565b61094a818360028601614fa2565b602081526000614177602083018486614e4d565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000813561520d816146d3565b6001600160a01b031683526152256020830183614e08565b6040602086015261523a604086018284614e4d565b95945050505050565b8281526040602082015260006141776040830184615200565b8135615267816146d3565b6152718183614ee1565b506001808201602061528581860186614f01565b6001600160401b0381111561529c5761529c614705565b6152aa816150a98654614a5c565b6000601f8211600181146152d857600083156152c65750838201355b6152d08482614f8d565b87555061532d565b600086815260209020601f19841690835b8281101561530657868501358255938701939089019087016152e9565b50848210156153235760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b61101b828261525c565b6000602080838503121561535557600080fd5b82516001600160401b0381111561536b57600080fd5b8301601f8101851361537c57600080fd5b805161538a6147f282614a90565b818152606091820283018401918482019190888411156153a957600080fd5b938501935b8385101561540e5780858a0312156153c65760008081fd5b6153ce61471b565b85516153d9816146d3565b8152858701516153e8816146d3565b818801526040868101516153fb81614995565b90820152835293840193918501916153ae565b50979650505050505050565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b8181101561548357855180516001600160a01b03908116855286820151168685015284015115158484015294840194606090920191600101615446565b50506001600160a01b0388166060870152935061549f92505050565b8260808301529695505050505050565b600060208083850312156154c257600080fd5b82516001600160401b038111156154d857600080fd5b8301601f810185136154e957600080fd5b80516154f76147f282614a90565b81815260059190911b8201830190838101908783111561551657600080fd5b928401925b828410156155345783518252928401929084019061551b565b979650505050505050565b600081518084526020808501945080840160005b838110156155785781516001600160a01b031687529582019590820190600101615553565b509495945050505050565b85815284602082015260a0604082015260006155a260a083018661553f565b6001600160a01b0394909416606083015250608001529392505050565b60006155cd6147f284614773565b90508281528383830111156155e157600080fd5b6129cb8360208301846148cd565b600082601f83011261560057600080fd5b6129cb838351602085016155bf565b60006020828403121561562157600080fd5b81516001600160401b038082111561563857600080fd5b908301906040828603121561564c57600080fd5b60405160408101818110838211171561566757615667614705565b60405282518281111561567957600080fd5b615685878286016155ef565b82525060208301518281111561569a57600080fd5b6156a6878286016155ef565b60208301525095945050505050565b6080815260006156c860808301876148f1565b82810360208401526156da8187614c33565b905082810360408401526156ee81866148f1565b91505082606083015295945050505050565b60006020828403121561571257600080fd5b81516001600160401b0381111561572857600080fd5b8201601f8101841361573957600080fd5b614177848251602084016155bf565b60006020828403121561575a57600080fd5b5051919050565b813561576c81614995565b815460ff19811691151560ff169182178355602084013561578c816146d3565b6001600160a81b03199190911690911760089190911b610100600160a81b03161781556040919091013560019190910155565b805160ff811681146157d057600080fd5b919050565b600060c082840312156157e757600080fd5b60405160c081018181106001600160401b038211171561580957615809614705565b6040528251815261581c602084016157bf565b602082015261582d604084016157bf565b60408201526060830151615840816146d3565b6060820152615851608084016157bf565b608082015261586260a084016157bf565b60a08201529392505050565b8082018082111561178157611781614b6c565b60006020828403121561589357600080fd5b815163ffffffff811681146129cb57600080fd5b6000602082840312156158b957600080fd5b81516001600160401b03811681146129cb57600080fd5b600083516158e28184602088016148cd565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001820161591957615919614b6c565b5060010190565b602081526000825160a0602084015261593c60c08401826148f1565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b61ffff8516815260ff8416602082015260a06040820152600061599e60a08301856148f1565b82810380606085015260008252602081016080850152506155346020820185614c0a565b600080604083850312156159d557600080fd5b505080516020909101519092909150565b60008083546159f481614a5c565b60018281168015615a0c5760018114615a2157615a50565b60ff1984168752821515830287019450615a50565b8760005260208060002060005b85811015615a475781548a820152908401908201615a2e565b50505082870194505b50929695505050505050565b600081518084526020808501945080840160005b8381101561557857815187529582019590820190600101615a70565b6000610120808301615a9e848b614884565b60208481019290925288519081905261014080850192600583901b8601909101918a820160005b82811015615b285787850361013f190186528151805186528481015185870152604080820151908701526060808201519087015260809081015160a091870182905290615b14818801836148f1565b978601979650505090830190600101615ac5565b505050508381036040850152615b3e818961553f565b915050615b7e606084018780516001600160a01b039081168352602080830151151590840152604080830151909116908301526060908101511515910152565b82810360e0840152615b908186615a5c565b91505082610100830152979650505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b81516001600160401b03811115615c0957615c09614705565b615c1d81615c178454614a5c565b84614f47565b602080601f831160018114615c4c5760008415615c3a5750858301515b615c448582614f8d565b865550612020565b600085815260208120601f198616915b82811015615c7b57888601518255948401946001909101908401615c5c565b5085821015615c995787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000825160806020840152615cc560a08401826148f1565b905060018060a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b600082615d1457634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215615d2b57600080fd5b81516129cb81614995565b60008251615d488184602087016148cd565b919091019291505056fe48b87fc02925b37a6aefac60c14fa9d8e9988d7dfadf262d4bd845872ca40730360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c07dc3e936e57a1fbcf8f99423c868491a8bc8d587b3e554a30b542ade4e6f9064736f6c63430008130033