0 txs
0 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)
lastHarvest
viewfunction lastHarvest() view returns (uint256)
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)
setBridgeMap
nonpayablefunction setBridgeMap(bytes32 _bridgeHash, string _function)
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)
Harvested
event Harvested(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
0x60a06040523060805234801561001457600080fd5b50608051615fc46200004d60003960008181610eb001528181610ef9015281816110000152818161104001526113590152615fc46000f3fe6080604052600436106102765760003560e01c80638129fc1c1161014f578063c4b00c4f116100c1578063ee63c1e51161007a578063ee63c1e51461076a578063f1a392da1461077f578063f2fde38b14610795578063f3f1a71a146107b5578063fe8d1ab0146107d5578063ff33d21f146107ea57600080fd5b8063c4b00c4f1461066b578063c89f2ce41461068b578063ca325469146106fc578063cc5ea4ef14610720578063d49b640814610735578063d7d66e711461074a57600080fd5b8063a5131aaa11610113578063a5131aaa146105a2578063b54653fb146105b7578063b9f391471461060b578063bac86af514610620578063bce4547a14610640578063c3c224751461065557600080fd5b80638129fc1c14610520578063873d80ec146105355780638da5cb5b14610558578063943f8e96146105765780639c345b9f1461058c57600080fd5b80635066a747116101e8578063671f6a26116101ac578063671f6a261461046d5780636ae40711146104945780636d0a6891146104a957806370c75107146104d6578063715018a6146104f6578063748b3c051461050b57600080fd5b80635066a747146103e05780635109d8b61461040057806352d1902d14610415578063530728d51461043857806364e510a11461044d57600080fd5b80631610ee401161023a5780631610ee401461033857806322be3de114610358578063284eb663146103785780633659cfe6146103985780634641257d146103b85780634f1ef286146103cd57600080fd5b80630278fb8a1461029c578063057d1ae3146102b15780630d1f7833146102c657806311b0b42d146102db578063154085921461031857600080fd5b366102975760cd546001600160a01b0316331461029557610295614678565b005b600080fd5b3480156102a857600080fd5b5061029561080a565b3480156102bd57600080fd5b5061029561099c565b3480156102d257600080fd5b50610295610bfd565b3480156102e757600080fd5b5060cd546102fb906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561032457600080fd5b506102956103333660046146d6565b610de2565b34801561034457600080fd5b50610295610353366004614733565b610e03565b34801561036457600080fd5b5060cc546102fb906001600160a01b031681565b34801561038457600080fd5b50610295610393366004614767565b610e54565b3480156103a457600080fd5b506102956103b33660046147e7565b610ea6565b3480156103c457600080fd5b50610295610f8e565b6102956103db3660046148bb565b610ff6565b3480156103ec57600080fd5b506102956103fb36600461495f565b6110c6565b34801561040c57600080fd5b50610295611159565b34801561042157600080fd5b5061042a61134c565b60405190815260200161030f565b34801561044457600080fd5b506102956113ff565b34801561045957600080fd5b5061029561046836600461495f565b6114ec565b34801561047957600080fd5b5060c9546104879060ff1681565b60405161030f91906149c7565b3480156104a057600080fd5b5061029561157a565b3480156104b557600080fd5b506104c96104c43660046149d5565b611760565b60405161030f9190614a3e565b3480156104e257600080fd5b5061042a6104f1366004614a51565b6117fa565b34801561050257600080fd5b5061029561182e565b34801561051757600080fd5b50610295611842565b34801561052c57600080fd5b506102956119b2565b34801561054157600080fd5b5061054a611b2a565b60405161030f929190614a92565b34801561056457600080fd5b506033546001600160a01b03166102fb565b34801561058257600080fd5b5061042a60cf5481565b34801561059857600080fd5b5061042a60ce5481565b3480156105ae57600080fd5b50610295611bcb565b3480156105c357600080fd5b5060d05460d1546105e69160ff8116916101009091046001600160a01b03169083565b6040805193151584526001600160a01b0390921660208401529082015260600161030f565b34801561061757600080fd5b50610295611c37565b34801561062c57600080fd5b5061029561063b366004614ac4565b611dc3565b34801561064c57600080fd5b50610295611ebd565b34801561066157600080fd5b5061042a60d95481565b34801561067757600080fd5b50610295610686366004614afd565b6120d1565b34801561069757600080fd5b5060ca5460cb546106c7916001600160a01b038082169260ff600160a01b93849004811693928216929091041684565b60405161030f94939291906001600160a01b039485168152921515602084015292166040820152901515606082015260800190565b34801561070857600080fd5b506107116120e6565b60405161030f93929190614b19565b34801561072c57600080fd5b50610295612215565b34801561074157600080fd5b5061054a6123b0565b34801561075657600080fd5b506102956107653660046149d5565b6123ce565b34801561077657600080fd5b5061029561240e565b34801561078b57600080fd5b5061042a60dd5481565b3480156107a157600080fd5b506102956107b03660046147e7565b61259a565b3480156107c157600080fd5b506104c96107d03660046149d5565b612610565b3480156107e157600080fd5b50610295612629565b3480156107f657600080fd5b50610295610805366004614b4f565b6127b2565b61081261288e565b600060d4600101805461082490614b7d565b80601f016020809104026020016040519081016040528092919081815260200182805461085090614b7d565b801561089d5780601f106108725761010080835404028352916020019161089d565b820191906000526020600020905b81548152906001019060200180831161088057829003601f168201915b50505050508060200190518101906108b59190614c43565b60cd5481519192506001600160a01b03169082906000906108d8576108d8614c77565b60200260200101516001600160a01b031614610907576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061092690600190614ca3565b8151811061093657610936614c77565b60200260200101516001600160a01b031614610965576040516376c252e160e11b815260040160405180910390fd5b6000610970826128ae565b9050600061097c612967565b60d454909150610996906001600160a01b031683836129da565b50505050565b6109a461288e565b600060d260010180546109b690614b7d565b80601f01602080910402602001604051908101604052809291908181526020018280546109e290614b7d565b8015610a2f5780601f10610a0457610100808354040283529160200191610a2f565b820191906000526020600020905b815481529060010190602001808311610a1257829003601f168201915b5050505050806020019051810190610a479190614cb6565b6040805160e081018252825161ffff16815260d6546001600160a01b0316602080830191909152633b9aca00828401819052606083015282516000808252818301855260808401919091528351818152808301855260a0840152835191820190935282815260c0820152919250610abd82612a79565b9050610acc8160000151612b00565b610ad4612b73565b6000610ade612bd4565b905060d954811115610bc7576040805160e081018252855161ffff16815260d6546001600160a01b039081166020808401919091528284018590526000606084018190528451818152808301865260808501528451818152808301865260a085015284519182018552815260c083015260d2548551935163c7c7f5b360e01b8152929650169163c7c7f5b391610b7c90879087903090600401614da1565b60006040518083038185885af1158015610b9a573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052610bc39190810190614e71565b5050505b60cc546040518281526001600160a01b0390911690600080516020615f288339815191529060200160405180910390a250505050565b610c0561288e565b60008060d46001018054610c1890614b7d565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4490614b7d565b8015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050806020019051810190610ca99190614f58565b60cd5481519294509092506001600160a01b0316908290600090610ccf57610ccf614c77565b60200260200101516001600160a01b031614610cfe576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290610d1d90600190614ca3565b81518110610d2d57610d2d614c77565b60200260200101516001600160a01b031614610d5c576040516376c252e160e11b815260040160405180910390fd5b6000610d66612967565b90506000610d748483612c05565b60d45460c9546040805160808101825260ca546001600160a01b03808216835260ff600160a01b9283900481161515602085015260cb548083169585019590955291909304811615156060830152949550610ddb9491909316929116908490879087612e0e565b5050505050565b610dea612f58565b600083815260db60205260409020610996828483615091565b610e0b612f58565b7f518f47fcfba5d9b707c3387a7fa4301136192d8091a43ea13ae8db7275ab5d3a81604051610e3a91906151b8565b60405180910390a18060d6610e4f8282615289565b505050565b610e5c612f58565b818160dc60008787604051602001610e75929190615382565b6040516020818303038152906040528051906020012081526020019081526020016000209182610ddb929190615091565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ef75760405162461bcd60e51b8152600401610eee90615396565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f40600080516020615f48833981519152546001600160a01b031690565b6001600160a01b031614610f665760405162461bcd60e51b8152600401610eee906153e2565b610f6f81612fb2565b60408051600080825260208201909252610f8b91839190612fba565b50565b610f96613125565b610f9e613196565b7f8e55ccfc9778ff8eba1646d765cf1982537ce0f9257054a17b48aad745250183610fc7612967565b60405190815260200160405180910390a16000610fe2612967565b1115610ff057610ff06132cf565b4260dd55565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361103e5760405162461bcd60e51b8152600401610eee90615396565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611087600080516020615f48833981519152546001600160a01b031690565b6001600160a01b0316146110ad5760405162461bcd60e51b8152600401610eee906153e2565b6110b682612fb2565b6110c282826001612fba565b5050565b6110ce612f58565b7f25f7dd6fc737add5174192a11292dfd270c1397f9c4f641fb6336a208b5efbed82826040516110ff929190615468565b60405180910390a160cd5460d454611123916001600160a01b0390811691166132ff565b60cf8290558060d4611135828261555d565b505060cd546110c2906001600160a01b031661115460208401846147e7565b61338e565b61116161288e565b600060d4600101805461117390614b7d565b80601f016020809104026020016040519081016040528092919081815260200182805461119f90614b7d565b80156111ec5780601f106111c1576101008083540402835291602001916111ec565b820191906000526020600020905b8154815290600101906020018083116111cf57829003601f168201915b50505050508060200190518101906112049190615567565b905060006112118261341b565b60cd5481519192506001600160a01b031690829060009061123457611234614c77565b60200260200101516001600160a01b031614611263576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061128290600190614ca3565b8151811061129257611292614c77565b60200260200101516001600160a01b0316146112c1576040516376c252e160e11b815260040160405180910390fd5b60006112cb612967565b60d454604051631e82ecdb60e31b81529192506001600160a01b03169063f41766d89061130590849060009088903090429060040161563f565b6000604051808303816000875af1158015611324573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261099691908101906156d4565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113ec5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610eee565b50600080516020615f4883398151915290565b61140761288e565b61140f612b73565b6000611419612bd4565b905060d9548111156114b95760d25460d65460cc5460405163cd58657960e01b81526000600482018190526001600160a01b0393841660248301526044820186905291831660648201526001608482015260c060a482015260c481019190915291169063cd5865799060e4015b600060405180830381600087803b1580156114a057600080fd5b505af11580156114b4573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615f288339815191529060200160405180910390a250565b6114f4612f58565b7f5e355369ceaccb04ff615500f99b96912ce9f237ed35ae521487c19064e2318d8282604051611525929190615468565b60405180910390a160cc5460d254611549916001600160a01b0390811691166132ff565b60ce8290558060d261155b828261555d565b505060cc546110c2906001600160a01b031661115460208401846147e7565b61158261288e565b600060d4600101805461159490614b7d565b80601f01602080910402602001604051908101604052809291908181526020018280546115c090614b7d565b801561160d5780601f106115e25761010080835404028352916020019161160d565b820191906000526020600020905b8154815290600101906020018083116115f057829003601f168201915b50505050508060200190518101906116259190614c43565b60cd5481519192506001600160a01b031690829060009061164857611648614c77565b60200260200101516001600160a01b031614611677576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061169690600190614ca3565b815181106116a6576116a6614c77565b60200260200101516001600160a01b0316146116d5576040516376c252e160e11b815260040160405180910390fd5b60006116df612967565b60d4546040516338ed173960e01b81529192506001600160a01b0316906338ed1739906117199084906000908790309042906004016157a8565b6000604051808303816000875af1158015611738573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e4f91908101906156d4565b60db602052600090815260409020805461177990614b7d565b80601f01602080910402602001604051908101604052809291908181526020018280546117a590614b7d565b80156117f25780601f106117c7576101008083540402835291602001916117f2565b820191906000526020600020905b8154815290600101906020018083116117d557829003601f168201915b505050505081565b6000828260405160200161180f929190615382565b6040516020818303038152906040528051906020012090505b92915050565b611836612f58565b6118406000613539565b565b61184a61288e565b600060d2600101805461185c90614b7d565b80601f016020809104026020016040519081016040528092919081815260200182805461188890614b7d565b80156118d55780601f106118aa576101008083540402835291602001916118d5565b820191906000526020600020905b8154815290600101906020018083116118b857829003601f168201915b50505050508060200190518101906118ed91906157e4565b90506118f7612b73565b6000611901612bd4565b905060d95481111561197d5760d254825160208401516040516326ef699d60e01b81526001600160a01b03909316926326ef699d9261194a92909160d891908790600401615874565b600060405180830381600087803b15801561196457600080fd5b505af1158015611978573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615f28833981519152906020015b60405180910390a25050565b600054610100900460ff16158080156119d25750600054600160ff909116105b806119ec5750303b1580156119ec575060005460ff166001145b611a4f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610eee565b6000805460ff191660011790558015611a72576000805461ff0019166101001790555b611a7a61358b565b611a826135ba565b611a8a6138e1565b604080516080810182523080825260006020830181905292820181905260609091019190915260ca805460ff60a01b199092166001600160a81b0319928316811790915560cb805490921617905560c9805460ff191690558015610f8b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60d4805460d580546001600160a01b039092169291611b4890614b7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611b7490614b7d565b8015611bc15780601f10611b9657610100808354040283529160200191611bc1565b820191906000526020600020905b815481529060010190602001808311611ba457829003601f168201915b5050505050905082565b611bd361288e565b611bdb612b73565b6000611be5612bd4565b905060d9548111156114b95760d25460d65460cc54604051636ce5768960e11b81526001600160a01b03928316600482015290821660248201526044810184905291169063d9caed1290606401611486565b611c3f61288e565b600060d46001018054611c5190614b7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611c7d90614b7d565b8015611cca5780601f10611c9f57610100808354040283529160200191611cca565b820191906000526020600020905b815481529060010190602001808311611cad57829003601f168201915b5050505050806020019051810190611ce2919061592a565b90506000611cef82613bea565b60cd5481519192506001600160a01b0316908290600090611d1257611d12614c77565b60200260200101516001600160a01b031614611d41576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290611d6090600190614ca3565b81518110611d7057611d70614c77565b60200260200101516001600160a01b031614611d9f576040516376c252e160e11b815260040160405180910390fd5b6000611da9612967565b60d454909150610996906001600160a01b031684836129da565b611dcb612f58565b8015611e3c576040514790600090339083908381818185875af1925050503d8060008114611e15576040519150601f19603f3d011682016040523d82523d6000602084013e611e1a565b606091505b505090508061099657604051630dcf35db60e41b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea7919061595e565b9050610e4f6001600160a01b0384163383613ced565b611ec561288e565b600060d46001018054611ed790614b7d565b80601f0160208091040260200160405190810160405280929190818152602001828054611f0390614b7d565b8015611f505780601f10611f2557610100808354040283529160200191611f50565b820191906000526020600020905b815481529060010190602001808311611f3357829003601f168201915b5050505050806020019051810190611f689190614c43565b60cd5481519192506001600160a01b0316908290600090611f8b57611f8b614c77565b60200260200101516001600160a01b031614611fba576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906001908110611fde57611fde614c77565b60200260200101516001600160a01b03161461200d576040516376c252e160e11b815260040160405180910390fd5b6000612017612967565b60d45483519192506001600160a01b03169063df791e5090849060009061204057612040614c77565b60200260200101518460018151811061205b5761205b614c77565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101849052606401600060405180830381600087803b1580156120b557600080fd5b505af11580156120c9573d6000803e3d6000fd5b505050505050565b6120d9612f58565b8060d0610e4f8282615977565b60d6805460d780546001600160a01b03909216929161210490614b7d565b80601f016020809104026020016040519081016040528092919081815260200182805461213090614b7d565b801561217d5780601f106121525761010080835404028352916020019161217d565b820191906000526020600020905b81548152906001019060200180831161216057829003601f168201915b50505050509080600201805461219290614b7d565b80601f01602080910402602001604051908101604052809291908181526020018280546121be90614b7d565b801561220b5780601f106121e05761010080835404028352916020019161220b565b820191906000526020600020905b8154815290600101906020018083116121ee57829003601f168201915b5050505050905083565b61221d61288e565b600060d2600101805461222f90614b7d565b80601f016020809104026020016040519081016040528092919081815260200182805461225b90614b7d565b80156122a85780601f1061227d576101008083540402835291602001916122a8565b820191906000526020600020905b81548152906001019060200180831161228b57829003601f168201915b50505050508060200190518101906122c091906159e6565b90506122ca612b73565b60006122d4612bd4565b905060d95481111561197d5760d25460d6548351606085015160208601516040870151608088015160a08901516001600160a01b0397881697639f33072797169594939291899160009142918361232d84610e10615a7f565b6040516001600160e01b031960e08f901b1681526001600160a01b039c8d166004820152602481019b909b529a90981660448a015260ff96871660648a0152948616608489015260a488019390935260c487019190915260e48601528216610104850152166101248301526101448201526101648101919091526101840161194a565b60d2805460d380546001600160a01b039092169291611b4890614b7d565b6123d6612f58565b6040518181527ff4f47d85dc8207b9d9c6dfd289d4f5008b33df899eda3da90658d75c351e54759060200160405180910390a160d955565b61241661288e565b600060d4600101805461242890614b7d565b80601f016020809104026020016040519081016040528092919081815260200182805461245490614b7d565b80156124a15780601f10612476576101008083540402835291602001916124a1565b820191906000526020600020905b81548152906001019060200180831161248457829003601f168201915b50505050508060200190518101906124b9919061592a565b905060006124c682613bea565b60cd5481519192506001600160a01b03169082906000906124e9576124e9614c77565b60200260200101516001600160a01b031614612518576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061253790600190614ca3565b8151811061254757612547614c77565b60200260200101516001600160a01b031614612576576040516376c252e160e11b815260040160405180910390fd5b6000612580612967565b60d454909150610996906001600160a01b03168483613d50565b6125a2612f58565b6001600160a01b0381166126075760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610eee565b610f8b81613539565b60dc602052600090815260409020805461177990614b7d565b61263161288e565b600060d2600101805461264390614b7d565b80601f016020809104026020016040519081016040528092919081815260200182805461266f90614b7d565b80156126bc5780601f10612691576101008083540402835291602001916126bc565b820191906000526020600020905b81548152906001019060200180831161269f57829003601f168201915b50505050508060200190518101906126d49190615a92565b90506126de612b73565b60006126e8612bd4565b905060d95481111561197d5760d25460d65460cc546040516337e9a82760e11b81526004810185905263ffffffff861660248201526001600160a01b0392831660448201529082166064820152911690636fd3504e906084016020604051808303816000875af1158015612760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127849190615ab8565b5060cc546040518281526001600160a01b0390911690600080516020615f28833981519152906020016119a6565b6127ba612f58565b60da5460ff166127ff5760cc80546001600160a01b039384166001600160a01b03199182161790915560cd805492909316911617905560da805460ff19166001179055565b60cc54604080516001600160a01b03928316815291841660208301527f4239efeca0761c0d170bd15a6e85542dbe0376ba0f5f1551b39c6045866ff735910160405180910390a160cc5460d254612862916001600160a01b0390811691166132ff565b60cc80546001600160a01b0319166001600160a01b0384811691821790925560d2546110c2921661338e565b3330146118405760405163ea8e4eb560e01b815260040160405180910390fd5b6060816000815181106128c3576128c3614c77565b60200260200101516040516020016128f3919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152919052905060015b8251811015612961578183828151811061292457612924614c77565b602002602001015160405160200161293d929190615ad3565b6040516020818303038152906040529150808061295990615b0a565b915050612908565b50919050565b60cd546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024015b602060405180830381865afa1580156129b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d5919061595e565b905090565b6040805160a081018252838152306020820152428183015260608101839052600060808201819052915163c04b8d5960e01b81526001600160a01b0386169063c04b8d5990612a2d908490600401615b23565b6020604051808303816000875af1158015612a4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a70919061595e565b95945050505050565b604080518082019091526000808252602082015260d254604051633b6f743b60e01b81526001600160a01b0390911690633b6f743b90612ac0908590600090600401615b7b565b6040805180830381865afa158015612adc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118289190615b9f565b6000612b0a612967565b90508181106110c25760cd54604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015612b5957600080fd5b505af1925050508015612b6a575060015b156110c2575050565b60cf54600090815260dc6020526040908190208151600481526024810192839052610f8b929091612ba391615bbb565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790523090613d9d565b60cc546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401612994565b6060600083516001600160401b03811115612c2257612c22614804565b604051908082528060200260200182016040528015612c8857816020015b612c756040518060a0016040528060008019168152602001600081526020016000815260200160008152602001606081525090565b815260200190600190039081612c405790505b50905060005b8451811015612e065780600003612d52576040518060a0016040528086600081518110612cbd57612cbd614c77565b602002602001015160000151815260200186600081518110612ce157612ce1614c77565b602002602001015160200151815260200186600081518110612d0557612d05614c77565b60200260200101516040015181526020018581526020016040518060200160405280600081525081525082600081518110612d4257612d42614c77565b6020026020010181905250612dfe565b6040518060a00160405280868381518110612d6f57612d6f614c77565b6020026020010151600001518152602001868381518110612d9257612d92614c77565b6020026020010151602001518152602001868381518110612db557612db5614c77565b60200260200101516040015181526020016000815260200160405180602001604052806000815250815250828281518110612df257612df2614c77565b60200260200101819052505b600101612c8e565b509392505050565b6060600084516001600160401b03811115612e2b57612e2b614804565b604051908082528060200260200182016040528015612e54578160200160208202803683370190505b50905060005b8551811015612ece5780600003612e90578382600081518110612e7f57612e7f614c77565b602002602001018181525050612ec6565b60018651612e9e9190614ca3565b8103612ec657600019828281518110612eb957612eb9614c77565b6020026020010181815250505b600101612e5a565b5060405163945bcec960e01b81526001600160a01b0389169063945bcec990612f05908a908a908a908a9088904290600401615c61565b6000604051808303816000875af1158015612f24573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f4c91908101906156d4565b98975050505050505050565b6033546001600160a01b031633146118405760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610eee565b610f8b612f58565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612fed57610e4f83613de8565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613047575060408051601f3d908101601f191682019092526130449181019061595e565b60015b6130aa5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610eee565b600080516020615f4883398151915281146131195760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610eee565b50610e4f838383613e84565b478015610f8b5760cd60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0476040518263ffffffff1660e01b81526004016000604051808303818588803b15801561317c57600080fd5b505af19350505050801561318e575060015b15610f8b5750565b60d05460ff16156118405760cd5460d0546040516370a0823160e01b81526101009091046001600160a01b03908116600483015260009216906370a0823190602401602060405180830381865afa1580156131f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613219919061595e565b60d054613235919061010090046001600160a01b031631615a7f565b60d154909150811015610f8b57600061324c612967565b905060008260d0600101546132619190614ca3565b90508181116132705780613272565b815b60d05460cd54919250613297916001600160a01b039081169161010090041683613ced565b6040518181527feb722ef3dbafc24e43f4627f9b306563a93d546865b49eb1e64fbaffdab73d5c9060200160405180910390a1505050565b60ce54600090815260db6020526040908190208151600481526024810192839052610f8b929091612ba391615bbb565b604051636eb1769f60e11b81523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa15801561334f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613373919061595e565b11156110c2576110c26001600160a01b038316826000613ea9565b604051636eb1769f60e11b81523060048201526001600160a01b03828116602483015283169063dd62ed3e90604401602060405180830381865afa1580156133da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133fe919061595e565b6000036110c2576110c26001600160a01b03831682600019613ea9565b606060008251600161342d9190615a7f565b6001600160401b0381111561344457613444614804565b60405190808252806020026020018201604052801561346d578160200160208202803683370190505b5090508260008151811061348357613483614c77565b602002602001015160000151816000815181106134a2576134a2614c77565b60200260200101906001600160a01b031690816001600160a01b03168152505060005b8351811015613532578381815181106134e0576134e0614c77565b602002602001015160200151828260016134fa9190615a7f565b8151811061350a5761350a614c77565b6001600160a01b039092166020928302919091019091015261352b81615b0a565b90506134c5565b5092915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166135b25760405162461bcd60e51b8152600401610eee90615d7a565b611840613fbe565b6040518060400160405280600e81526020016d627269646765436972636c65282960901b81525060db600060405160200161360f90602080825260069082015265434952434c4560d01b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161363f9190615dc5565b506040518060400160405280601081526020016f6272696467655374617267617465282960801b81525060db600060405160200161369990602080825260089082015267535441524741544560c01b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816136c99190615dc5565b506040518060400160405280600e81526020016d6272696467654178656c6172282960901b81525060db600060405160200161371f9060208082526006908201526520ac22a620a960d11b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161374f9190615dc5565b506040518060400160405280600f81526020016e62726964676553796e61707365282960881b81525060db60006040516020016137a79060208082526007908201526653594e4150534560c81b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816137d79190615dc5565b506040518060400160405280600d81526020016c6272696467657a6b45564d282960981b81525060db600060405160200161382b906020808252600590820152647a6b45564d60d81b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161385b9190615dc5565b506040518060400160405280600e81526020016d6272696467657a6b53796e63282960901b81525060db60006040516020016138b1906020808252600690820152657a6b53594e4360d01b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081610f8b9190615dc5565b6040518060400160405280600b81526020016a73776170556e695632282960a81b81525060dc6000604051602001613937906020808252600a90820152692aa724a9aba0a82fab1960b11b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816139679190615dc5565b506040518060400160405280600d81526020016c73776170536f6c69646c79282960981b81525060dc60006040516020016139bd90602080825260079082015266534f4c49444c5960c81b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816139ed9190615dc5565b506040518060400160405280600b81526020016a73776170556e695633282960a81b81525060dc6000604051602001613a44906020808252600a9082015269554e49535741505f563360b01b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613a749190615dc5565b506040518060400160405280601381526020017273776170556e695633446561646c696e65282960681b81525060dc6000604051602001613adc90602080825260139082015272554e49535741505f56335f444541444c494e4560681b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613b0c9190615dc5565b506040518060400160405280600d81526020016c73776170416c6765627261282960981b81525060dc6000604051602001613b6290602080825260079082015266414c474542524160c81b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613b929190615dc5565b506040518060400160405280600e81526020016d7377617042616c616e636572282960901b81525060dc60006040516020016138b1906020808252600890820152672120a620a721a2a960c11b604082015260600190565b60606000613bf783613fee565b90506000613c06826001615a7f565b6001600160401b03811115613c1d57613c1d614804565b604051908082528060200260200182016040528015613c46578160200160208202803683370190505b50905060005b82811015612e0657600080613c6087614014565b509150915081848481518110613c7857613c78614c77565b6001600160a01b03909216602092830291909101909101528084613c9d856001615a7f565b81518110613cad57613cad614c77565b60200260200101906001600160a01b031690816001600160a01b031681525050613cd687614050565b965050508080613ce590615b0a565b915050613c4c565b6040516001600160a01b038316602482015260448101829052610e4f90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614081565b60408051608081018252838152306020820152808201839052600060608201819052915163b858183f60e01b81526001600160a01b0386169063b858183f90612a2d908490600401615e7e565b6060613de1838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250614156565b9392505050565b6001600160a01b0381163b613e555760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610eee565b600080516020615f4883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613e8d83614233565b600082511180613e9a5750805b15610e4f576109968383614273565b801580613f235750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f21919061595e565b155b613f8e5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610eee565b6040516001600160a01b038316602482015260448101829052610e4f90849063095ea7b360e01b90606401613d19565b600054610100900460ff16613fe55760405162461bcd60e51b8152600401610eee90615d7a565b61184033613539565b6000613ffc60036014615a7f565b6014835161400a9190614ca3565b6118289190615ecc565b600080806140228482614298565b925061402f84601461434c565b905061404761404060036014615a7f565b8590614298565b91509193909250565b606061182861406160036014615a7f565b61406d60036014615a7f565b84516140799190614ca3565b8491906143f7565b60006140d6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661454e9092919063ffffffff16565b90508051600014806140f75750808060200190518101906140f79190615eee565b610e4f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610eee565b6060824710156141b75760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610eee565b600080866001600160a01b031685876040516141d39190615f0b565b60006040518083038185875af1925050503d8060008114614210576040519150601f19603f3d011682016040523d82523d6000602084013e614215565b606091505b50915091506142268783838761455d565b925050505b949350505050565b61423c81613de8565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613de18383604051806060016040528060278152602001615f68602791396145d6565b6000816142a6816014615a7f565b10156142e95760405162461bcd60e51b8152602060048201526012602482015271746f416464726573735f6f766572666c6f7760701b6044820152606401610eee565b6142f4826014615a7f565b8351101561433c5760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610eee565b500160200151600160601b900490565b60008161435a816003615a7f565b101561439c5760405162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b6044820152606401610eee565b6143a7826003615a7f565b835110156143ee5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606401610eee565b50016003015190565b60608161440581601f615a7f565b10156144445760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610eee565b8261444f8382615a7f565b101561448e5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610eee565b6144988284615a7f565b845110156144dc5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610eee565b6060821580156144fb5760405191506000825260208201604052614545565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101561453457805183526020928301920161451c565b5050858452601f01601f1916604052505b50949350505050565b606061422b8484600085614156565b606083156145cc5782516000036145c5576001600160a01b0385163b6145c55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610eee565b508161422b565b61422b838361464e565b6060600080856001600160a01b0316856040516145f39190615f0b565b600060405180830381855af49150503d806000811461462e576040519150601f19603f3d011682016040523d82523d6000602084013e614633565b606091505b50915091506146448683838761455d565b9695505050505050565b81511561465e5781518083602001fd5b8060405162461bcd60e51b8152600401610eee9190614a3e565b634e487b7160e01b600052600160045260246000fd5b60008083601f8401126146a057600080fd5b5081356001600160401b038111156146b757600080fd5b6020830191508360208285010111156146cf57600080fd5b9250929050565b6000806000604084860312156146eb57600080fd5b8335925060208401356001600160401b0381111561470857600080fd5b6147148682870161468e565b9497909650939450505050565b60006060828403121561296157600080fd5b60006020828403121561474557600080fd5b81356001600160401b0381111561475b57600080fd5b61422b84828501614721565b6000806000806040858703121561477d57600080fd5b84356001600160401b038082111561479457600080fd5b6147a08883890161468e565b909650945060208701359150808211156147b957600080fd5b506147c68782880161468e565b95989497509550505050565b6001600160a01b0381168114610f8b57600080fd5b6000602082840312156147f957600080fd5b8135613de1816147d2565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561483c5761483c614804565b60405290565b604051606081016001600160401b038111828210171561483c5761483c614804565b604051601f8201601f191681016001600160401b038111828210171561488c5761488c614804565b604052919050565b60006001600160401b038211156148ad576148ad614804565b50601f01601f191660200190565b600080604083850312156148ce57600080fd5b82356148d9816147d2565b915060208301356001600160401b038111156148f457600080fd5b8301601f8101851361490557600080fd5b803561491861491382614894565b614864565b81815286602083850101111561492d57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006040828403121561296157600080fd5b6000806040838503121561497257600080fd5b8235915060208301356001600160401b0381111561498f57600080fd5b61499b8582860161494d565b9150509250929050565b600281106149c357634e487b7160e01b600052602160045260246000fd5b9052565b6020810161182882846149a5565b6000602082840312156149e757600080fd5b5035919050565b60005b83811015614a095781810151838201526020016149f1565b50506000910152565b60008151808452614a2a8160208601602086016149ee565b601f01601f19169290920160200192915050565b602081526000613de16020830184614a12565b60008060208385031215614a6457600080fd5b82356001600160401b03811115614a7a57600080fd5b614a868582860161468e565b90969095509350505050565b6001600160a01b038316815260406020820181905260009061422b90830184614a12565b8015158114610f8b57600080fd5b60008060408385031215614ad757600080fd5b8235614ae2816147d2565b91506020830135614af281614ab6565b809150509250929050565b600060608284031215614b0f57600080fd5b613de18383614721565b6001600160a01b0384168152606060208201819052600090614b3d90830185614a12565b82810360408401526146448185614a12565b60008060408385031215614b6257600080fd5b8235614b6d816147d2565b91506020830135614af2816147d2565b600181811c90821680614b9157607f821691505b60208210810361296157634e487b7160e01b600052602260045260246000fd5b60006001600160401b03821115614bca57614bca614804565b5060051b60200190565b600082601f830112614be557600080fd5b81516020614bf561491383614bb1565b82815260059290921b84018101918181019086841115614c1457600080fd5b8286015b84811015614c38578051614c2b816147d2565b8352918301918301614c18565b509695505050505050565b600060208284031215614c5557600080fd5b81516001600160401b03811115614c6b57600080fd5b61422b84828501614bd4565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561182857611828614c8d565b600060808284031215614cc857600080fd5b604051608081018181106001600160401b0382111715614cea57614cea614804565b604052825161ffff81168114614cff57600080fd5b808252506020830151602082015260408301516040820152606083015160608201528091505092915050565b63ffffffff81511682526020810151602083015260408101516040830152606081015160608301526000608082015160e06080850152614d6e60e0850182614a12565b905060a083015184820360a0860152614d878282614a12565b91505060c083015184820360c0860152612a708282614a12565b608081526000614db46080830186614d2b565b8451602084810191909152909401516040830152506001600160a01b0391909116606090910152919050565b80516001600160401b0381168114614df757600080fd5b919050565b600060408284031215614e0e57600080fd5b614e1661481a565b9050815181526020820151602082015292915050565b600082601f830112614e3d57600080fd5b8151614e4b61491382614894565b818152846020838601011115614e6057600080fd5b61422b8260208301602087016149ee565b600080600083850360e0811215614e8757600080fd5b6080811215614e9557600080fd5b50614e9e614842565b84518152614eae60208601614de0565b6020820152614ec08660408701614dfc565b60408201529250614ed48560808601614dfc565b915060c08401516001600160401b0380821115614ef057600080fd5b9085019060408288031215614f0457600080fd5b614f0c61481a565b825168ffffffffffffffffff81168114614f2557600080fd5b8152602083015182811115614f3957600080fd5b614f4589828601614e2c565b6020830152508093505050509250925092565b6000806040808486031215614f6c57600080fd5b83516001600160401b0380821115614f8357600080fd5b818601915086601f830112614f9757600080fd5b81516020614fa761491383614bb1565b8281526060928302850182019282820191908b851115614fc657600080fd5b958301955b8487101561500e5780878d031215614fe35760008081fd5b614feb614842565b875181528488015185820152888801518982015283529586019591830191614fcb565b509189015191975090945050508083111561502857600080fd5b505061499b85828601614bd4565b601f821115610e4f57600081815260208120601f850160051c8101602086101561505d5750805b601f850160051c820191505b818110156120c957828155600101615069565b600019600383901b1c191660019190911b1790565b6001600160401b038311156150a8576150a8614804565b6150bc836150b68354614b7d565b83615036565b6000601f8411600181146150ea57600085156150d85750838201355b6150e2868261507c565b845550610ddb565b600083815260209020601f19861690835b8281101561511b57868501358255602094850194600190920191016150fb565b50868210156151385760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000808335601e1984360301811261516157600080fd5b83016020810192503590506001600160401b0381111561518057600080fd5b8036038213156146cf57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600082356151c9816147d2565b6001600160a01b03166020838101919091526151e79084018461514a565b606060408501526151fc60808501828461518f565b91505061520c604085018561514a565b848303601f1901606086015261464483828461518f565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000808335601e1984360301811261525a57600080fd5b8301803591506001600160401b0382111561527457600080fd5b6020019150368190038213156146cf57600080fd5b8135615294816147d2565b61529e8183615223565b50600180820160206152b281860186615243565b6001600160401b038111156152c9576152c9614804565b6152dd816152d78654614b7d565b86615036565b6000601f82116001811461530b57600083156152f95750838201355b615303848261507c565b875550615360565b600086815260209020601f19841690835b82811015615339578685013582559387019390890190870161531c565b50848210156153565760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050506153746040830183615243565b610996818360028601615091565b60208152600061422b60208301848661518f565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000813561543b816147d2565b6001600160a01b03168352615453602083018361514a565b60406020860152612a7060408601828461518f565b82815260406020820152600061422b604083018461542e565b813561548c816147d2565b6154968183615223565b50600180820160206154aa81860186615243565b6001600160401b038111156154c1576154c1614804565b6154cf816152d78654614b7d565b6000601f8211600181146154fd57600083156154eb5750838201355b6154f5848261507c565b875550615552565b600086815260209020601f19841690835b8281101561552b578685013582559387019390890190870161550e565b50848210156155485760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b6110c28282615481565b6000602080838503121561557a57600080fd5b82516001600160401b0381111561559057600080fd5b8301601f810185136155a157600080fd5b80516155af61491382614bb1565b818152606091820283018401918482019190888411156155ce57600080fd5b938501935b838510156156335780858a0312156155eb5760008081fd5b6155f3614842565b85516155fe816147d2565b81528587015161560d816147d2565b8188015260408681015161562081614ab6565b90820152835293840193918501916155d3565b50979650505050505050565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b818110156156a857855180516001600160a01b0390811685528682015116868501528401511515848401529484019460609092019160010161566b565b50506001600160a01b038816606087015293506156c492505050565b8260808301529695505050505050565b600060208083850312156156e757600080fd5b82516001600160401b038111156156fd57600080fd5b8301601f8101851361570e57600080fd5b805161571c61491382614bb1565b81815260059190911b8201830190838101908783111561573b57600080fd5b928401925b8284101561575957835182529284019290840190615740565b979650505050505050565b600081518084526020808501945080840160005b8381101561579d5781516001600160a01b031687529582019590820190600101615778565b509495945050505050565b85815284602082015260a0604082015260006157c760a0830186615764565b6001600160a01b0394909416606083015250608001529392505050565b6000602082840312156157f657600080fd5b81516001600160401b038082111561580d57600080fd5b908301906040828603121561582157600080fd5b61582961481a565b82518281111561583857600080fd5b61584487828601614e2c565b82525060208301518281111561585957600080fd5b61586587828601614e2c565b60208301525095945050505050565b6080815260006158876080830187614a12565b6020838203818501526000875461589d81614b7d565b808552600182811680156158b857600181146158d257615900565b60ff1984168787015282151560051b870186019450615900565b8b6000528560002060005b848110156158f85781548982018901529083019087016158dd565b880187019550505b5050505084810360408601526159168188614a12565b935050505082606083015295945050505050565b60006020828403121561593c57600080fd5b81516001600160401b0381111561595257600080fd5b61422b84828501614e2c565b60006020828403121561597057600080fd5b5051919050565b813561598281614ab6565b815460ff19811691151560ff16918217835560208401356159a2816147d2565b6001600160a81b03199190911690911760089190911b610100600160a81b03161781556040919091013560019190910155565b805160ff81168114614df757600080fd5b600060c082840312156159f857600080fd5b60405160c081018181106001600160401b0382111715615a1a57615a1a614804565b60405282518152615a2d602084016159d5565b6020820152615a3e604084016159d5565b60408201526060830151615a51816147d2565b6060820152615a62608084016159d5565b6080820152615a7360a084016159d5565b60a08201529392505050565b8082018082111561182857611828614c8d565b600060208284031215615aa457600080fd5b815163ffffffff81168114613de157600080fd5b600060208284031215615aca57600080fd5b613de182614de0565b60008351615ae58184602088016149ee565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600060018201615b1c57615b1c614c8d565b5060010190565b602081526000825160a06020840152615b3f60c0840182614a12565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b604081526000615b8e6040830185614d2b565b905082151560208301529392505050565b600060408284031215615bb157600080fd5b613de18383614dfc565b6000808354615bc981614b7d565b60018281168015615be15760018114615bf657615c25565b60ff1984168752821515830287019450615c25565b8760005260208060002060005b85811015615c1c5781548a820152908401908201615c03565b50505082870194505b50929695505050505050565b600081518084526020808501945080840160005b8381101561579d57815187529582019590820190600101615c45565b6000610120808301615c73848b6149a5565b60208481019290925288519081905261014080850192600583901b8601909101918a820160005b82811015615cfd5787850361013f190186528151805186528481015185870152604080820151908701526060808201519087015260809081015160a091870182905290615ce981880183614a12565b978601979650505090830190600101615c9a565b505050508381036040850152615d138189615764565b915050615d53606084018780516001600160a01b039081168352602080830151151590840152604080830151909116908301526060908101511515910152565b82810360e0840152615d658186615c31565b91505082610100830152979650505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b81516001600160401b03811115615dde57615dde614804565b615df281615dec8454614b7d565b84615036565b602080601f831160018114615e215760008415615e0f5750858301515b615e19858261507c565b8655506120c9565b600085815260208120601f198616915b82811015615e5057888601518255948401946001909101908401615e31565b5085821015615e6e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000825160806020840152615e9a60a0840182614a12565b905060018060a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b600082615ee957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215615f0057600080fd5b8151613de181614ab6565b60008251615f1d8184602087016149ee565b919091019291505056fe48b87fc02925b37a6aefac60c14fa9d8e9988d7dfadf262d4bd845872ca40730360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212209346dc14fe0b472bfaddec449e87a03bce1564550107ce537e9beb5f6b996cf564736f6c63430008130033