0 txs
0 calls
constructor
No constructor.
functions
bridgeContracts
viewfunction bridgeContracts(uint16 chainId_) view returns (bytes32)
chainId
viewfunction chainId() view returns (uint16)
encodeTransfer
purefunction encodeTransfer(tuple transfer) pure returns (bytes encoded)
governanceActionIsConsumed
viewfunction governanceActionIsConsumed(bytes32 hash) view returns (bool)
governanceChainId
viewfunction governanceChainId() view returns (uint16)
governanceContract
viewfunction governanceContract() view returns (bytes32)
implementation
viewfunction implementation() view returns (address)
isInitialized
viewfunction isInitialized(address impl) view returns (bool)
isTransferCompleted
viewfunction isTransferCompleted(bytes32 hash) view returns (bool)
isWrappedAsset
viewfunction isWrappedAsset(address token) view returns (bool)
onERC721Received
viewfunction onERC721Received(address operator, address, uint256, bytes) view returns (bytes4)
parseRegisterChain
purefunction parseRegisterChain(bytes encoded) pure returns (tuple chain)
parseTransfer
purefunction parseTransfer(bytes encoded) pure returns (tuple transfer)
parseUpgrade
purefunction parseUpgrade(bytes encoded) pure returns (tuple chain)
splCache
viewfunction splCache(uint256 tokenId) view returns (tuple)
tokenImplementation
viewfunction tokenImplementation() view returns (address)
wormhole
viewfunction wormhole() view returns (address)
wrappedAsset
viewfunction wrappedAsset(uint16 tokenChainId, bytes32 tokenAddress) view returns (address)
completeTransfer
nonpayablefunction completeTransfer(bytes encodedVm)
registerChain
nonpayablefunction registerChain(bytes encodedVM)
transferNFT
payablefunction transferNFT(address token, uint256 tokenID, uint16 recipientChain, bytes32 recipient, uint32 nonce) payable returns (uint64 sequence)
upgrade
nonpayablefunction upgrade(bytes encodedVM)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
ContractUpgraded
event ContractUpgraded(address indexed oldContract, address indexed newContract)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50613ebe806100206000396000f3fe608060405260043610620001935760003560e01c80639a8a059211620000db578063c68785191162000089578063e6a853e01162000060578063e6a853e014620005f0578063fbe3c2cd1462000624578063fbeeacd9146200064557600080fd5b8063c6878519146200055d578063c96616e11462000582578063d60b347f14620005b357600080fd5b8063aa4efa5b11620000be578063aa4efa5b14620004ce578063ad66a5f11462000502578063b172b222146200054657600080fd5b80639a8a0592146200047f578063a5799f9314620004a957600080fd5b80632b51137511620001455780633ca64826116200011c5780633ca6482614620003ce5780635c60da1b146200044757806384acd1bb146200045f57600080fd5b80632b51137514620003465780632c3c02a4146200037a5780632f3a3d5d14620003ae57600080fd5b80631a2be4da116200017a5780631a2be4da146200026d5780631ff1e28614620002bb57806325394645146200031f57600080fd5b806301f532551462000198578063150b7a021462000216575b600080fd5b348015620001a557600080fd5b50620001bd620001b736600462002cbc565b620006a5565b6040516200020d9190600060a0820190508251825260ff6020840151166020830152604083015161ffff808216604085015280606086015116606085015250506080830151608083015292915050565b60405180910390f35b3480156200022357600080fd5b506200023b6200023536600462002b6b565b620008fb565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016200020d565b3480156200027a57600080fd5b50620002aa6200028c36600462002b4e565b6001600160a01b031660009081526008602052604090205460ff1690565b60405190151581526020016200020d565b348015620002c857600080fd5b5062000306620002da36600462002fb6565b61ffff91909116600090815260076020908152604080832093835292905220546001600160a01b031690565b6040516001600160a01b0390911681526020016200020d565b3480156200032c57600080fd5b50620003446200033e36600462002cbc565b620009a8565b005b3480156200035357600080fd5b506200036b6200036536600462002cbc565b62000a9b565b6040516200020d9190620031ee565b3480156200038757600080fd5b50620002aa6200039936600462002c8a565b60009081526004602052604090205460ff1690565b348015620003bb57600080fd5b506001546001600160a01b031662000306565b348015620003db57600080fd5b506200042b620003ed36600462002c8a565b6040805180820190915260008082526020820152506000908152600a6020908152604091829020825180840190935280548352600101549082015290565b604080518251815260209283015192810192909252016200020d565b3480156200045457600080fd5b506200030662000cd2565b3480156200046c57600080fd5b506000546001600160a01b031662000306565b3480156200048c57600080fd5b5060025461ffff165b60405161ffff90911681526020016200020d565b348015620004b657600080fd5b5062000344620004c836600462002cbc565b62000cec565b348015620004db57600080fd5b50620002aa620004ed36600462002c8a565b60009081526005602052604090205460ff1690565b3480156200050f57600080fd5b50620005376200052136600462002f78565b61ffff1660009081526009602052604090205490565b6040519081526020016200020d565b3480156200055357600080fd5b5060035462000537565b3480156200056a57600080fd5b50620003446200057c36600462002cbc565b62000dff565b620005996200059336600462002c0a565b62000e0d565b60405167ffffffffffffffff90911681526020016200020d565b348015620005c057600080fd5b50620002aa620005d236600462002b4e565b6001600160a01b031660009081526006602052604090205460ff1690565b348015620005fd57600080fd5b50620006156200060f36600462002d3e565b62001591565b6040516200020d919062003185565b3480156200063157600080fd5b5060025462010000900461ffff1662000495565b3480156200065257600080fd5b506200066a6200066436600462002cbc565b620015ec565b6040516200020d91908151815260208083015160ff169082015260408083015161ffff16908201526060918201519181019190915260800190565b6040805160a081018252600080825260208201819052918101829052606081018290526080810182905290620006dc83826200180d565b8252620006eb60208262003379565b8251909150684e465442726964676514620007735760405162461bcd60e51b815260206004820152602360248201527f696e76616c6964205265676973746572436861696e3a2077726f6e67206d6f6460448201527f756c65000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6200077f838262001877565b60ff1660208301526200079460018262003379565b9050816020015160ff16600114620008155760405162461bcd60e51b815260206004820152602360248201527f696e76616c6964205265676973746572436861696e3a2077726f6e672061637460448201527f696f6e000000000000000000000000000000000000000000000000000000000060648201526084016200076a565b620008218382620018e1565b61ffff1660408301526200083760028262003379565b9050620008458382620018e1565b61ffff1660608301526200085b60028262003379565b90506200086983826200180d565b60808301526200087b60208262003379565b905080835114620008f55760405162461bcd60e51b815260206004820152602360248201527f696e76616c6964205265676973746572436861696e3a2077726f6e67206c656e60448201527f677468000000000000000000000000000000000000000000000000000000000060648201526084016200076a565b50919050565b60006001600160a01b03861630146200097d5760405162461bcd60e51b815260206004820152602d60248201527f63616e206f6e6c792062726964676520746f6b656e7320766961207472616e7360448201527f6665724e4654206d6574686f640000000000000000000000000000000000000060648201526084016200076a565b507f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6000806000620009b8846200194b565b925092509250818190620009e15760405162461bcd60e51b81526004016200076a919062003185565b5062000a078361014001516000908152600460205260409020805460ff19166001179055565b600062000a188460e00151620015ec565b905062000a2860025461ffff1690565b61ffff16816040015161ffff161462000a845760405162461bcd60e51b815260206004820152600e60248201527f77726f6e6720636861696e20696400000000000000000000000000000000000060448201526064016200076a565b606081015162000a949062001b81565b5050505050565b604080516101008101825260008082526020820181905291810182905260608082018390526080820183905260a082015260c0810182905260e08101829052908062000ae8848262001877565b905062000af760018362003379565b91508060ff1660011462000b4e5760405162461bcd60e51b815260206004820152601060248201527f696e76616c6964205472616e736665720000000000000000000000000000000060448201526064016200076a565b62000b5a84836200180d565b835262000b6960208362003379565b915062000b778483620018e1565b61ffff16602084015262000b8d60028362003379565b915062000b9b84836200180d565b604084015262000bad60208362003379565b915062000bbb84836200180d565b606084015262000bcd60208362003379565b915062000bdb848362001cd1565b608084015262000bed60208362003379565b9150600062000bfd858462001877565b905062000c0c60018462003379565b925062000c1e858460ff841662001d32565b60a085015262000c3260ff82168462003379565b925062000c4085846200180d565b60c085015262000c5260208462003379565b925062000c608584620018e1565b61ffff1660e085015262000c7660028462003379565b92508285511462000cca5760405162461bcd60e51b815260206004820152601060248201527f696e76616c6964205472616e736665720000000000000000000000000000000060448201526064016200076a565b505050919050565b600062000ce76001546001600160a01b031690565b905090565b600080600062000cfc846200194b565b92509250925081819062000d255760405162461bcd60e51b81526004016200076a919062003185565b5062000d4b8361014001516000908152600460205260409020805460ff19166001179055565b600062000d5c8460e00151620006a5565b905062000d6c60025461ffff1690565b61ffff16816040015161ffff16148062000d8c5750604081015161ffff16155b62000dda5760405162461bcd60e51b815260206004820152601060248201527f696e76616c696420636861696e2069640000000000000000000000000000000060448201526064016200076a565b62000a948160600151826080015161ffff909116600090815260096020526040902055565b62000e0a8162001e66565b50565b600080600062000e35886001600160a01b031660009081526008602052604090205460ff1690565b1562000f2f57876001600160a01b0316639a8a05926040518163ffffffff1660e01b815260040160206040518083038186803b15801562000e7557600080fd5b505afa15801562000e8a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000eb0919062002f97565b9150876001600160a01b0316633d6c043b6040518163ffffffff1660e01b815260040160206040518083038186803b15801562000eec57600080fd5b505afa15801562000f01573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000f27919062002ca3565b90506200115a565b60025461ffff166040516301ffc9a760e01b81527f80ac58cd0000000000000000000000000000000000000000000000000000000060048201529092506001600160a01b038916915081906301ffc9a79060240160206040518083038186803b15801562000f9c57600080fd5b505afa15801562000fb1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000fd7919062002c6d565b6200104b5760405162461bcd60e51b815260206004820152602160248201527f6d75737420737570706f7274207468652045524337323120696e74657266616360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016200076a565b6040516301ffc9a760e01b81527f5b5e139f0000000000000000000000000000000000000000000000000000000060048201526001600160a01b038916906301ffc9a79060240160206040518083038186803b158015620010ab57600080fd5b505afa158015620010c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010e6919062002c6d565b6200115a5760405162461bcd60e51b815260206004820152602a60248201527f6d75737420737570706f727420746865204552433732312d4d6574616461746160448201527f20657874656e73696f6e0000000000000000000000000000000000000000000060648201526084016200076a565b60608060608461ffff16600114620012e65760408051600481526024810182526020810180516001600160e01b03167f95d89b410000000000000000000000000000000000000000000000000000000017905290516000916001600160a01b038e1691620011c991906200302f565b600060405180830381855afa9150503d806000811462001206576040519150601f19603f3d011682016040523d82523d6000602084013e6200120b565b606091505b5060408051600481526024810182526020810180516001600160e01b03167f06fdde03000000000000000000000000000000000000000000000000000000001790529051919350600092506001600160a01b038f16916200126d91906200302f565b600060405180830381855afa9150503d8060008114620012aa576040519150601f19603f3d011682016040523d82523d6000602084013e620012af565b606091505b5091505081806020019051810190620012c9919062002d07565b945080806020019051810190620012e1919062002d07565b935050505b60008b6001600160a01b03168b6040516024016200130691815260200190565b60408051601f198184030181529181526020820180516001600160e01b03167fc87b56dd00000000000000000000000000000000000000000000000000000000179052516200135691906200302f565b600060405180830381855afa9150503d806000811462001393576040519150601f19603f3d011682016040523d82523d6000602084013e62001398565b606091505b5091505080806020019051810190620013b2919062002d07565b9150506000808661ffff16600114156200142f57604080518082018252600080825260209182018190528e8152600a82528281208351808501909452805484526001015491830191909152906020810151815190945092509050620014288d6000908152600a6020526040812081815560010155565b506200143c565b5050602083810151908301515b60025461ffff88811691161415620014bc57604051632142170760e11b8152336004820152306024820152604481018d90526001600160a01b038e16906342842e0e90606401600060405180830381600087803b1580156200149d57600080fd5b505af1158015620014b2573d6000803e3d6000fd5b5050505062001532565b6040517f42966c68000000000000000000000000000000000000000000000000000000008152600481018d90526001600160a01b038e16906342966c6890602401600060405180830381600087803b1580156200151857600080fd5b505af11580156200152d573d6000803e3d6000fd5b505050505b620015806040518061010001604052808881526020018961ffff1681526020018481526020018381526020018e81526020018581526020018c81526020018d61ffff16815250348b62002288565b9d9c50505050505050505050505050565b8051602080830151604080850151606086810151608088015160a0890151805160c08b015160e08c01519751959a620015d69a60019a91999198979394930162003080565b6040516020818303038152906040529050919050565b6040805160808101825260008082526020820181905291810182905260608101829052906200161c83826200180d565b82526200162b60208262003379565b8251909150684e465442726964676514620016af5760405162461bcd60e51b815260206004820152602560248201527f696e76616c69642055706772616465436f6e74726163743a2077726f6e67206d60448201527f6f64756c6500000000000000000000000000000000000000000000000000000060648201526084016200076a565b620016bb838262001877565b60ff166020830152620016d060018262003379565b9050816020015160ff16600214620017515760405162461bcd60e51b815260206004820152602560248201527f696e76616c69642055706772616465436f6e74726163743a2077726f6e67206160448201527f6374696f6e00000000000000000000000000000000000000000000000000000060648201526084016200076a565b6200175d8382620018e1565b61ffff1660408301526200177360028262003379565b90506200178183826200180d565b60608301526200179360208262003379565b905080835114620008f55760405162461bcd60e51b815260206004820152602560248201527f696e76616c69642055706772616465436f6e74726163743a2077726f6e67206c60448201527f656e67746800000000000000000000000000000000000000000000000000000060648201526084016200076a565b60006200181c82602062003379565b835110156200186e5760405162461bcd60e51b815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e6473000000000000000000000060448201526064016200076a565b50016020015190565b60006200188682600162003379565b83511015620018d85760405162461bcd60e51b815260206004820152601360248201527f746f55696e74385f6f75744f66426f756e64730000000000000000000000000060448201526064016200076a565b50016001015190565b6000620018f082600262003379565b83511015620019425760405162461bcd60e51b815260206004820152601460248201527f746f55696e7431365f6f75744f66426f756e647300000000000000000000000060448201526064016200076a565b50016002015190565b604080516101608101825260008082526020820181905291810182905260608082018390526080820183905260a0820183905260c0820183905260e082018190526101008201839052610120820152610140810191909152600060606000806000620019bf6000546001600160a01b031690565b6001600160a01b031663c0fd8bde886040518263ffffffff1660e01b8152600401620019ec919062003185565b60006040518083038186803b15801562001a0557600080fd5b505afa15801562001a1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001a44919081019062002e08565b9250925092508162001a5d579194509250905062001b7a565b60025462010000900461ffff1661ffff16836060015161ffff161462001ac257505060408051808201909152601681527f77726f6e6720676f7665726e616e636520636861696e00000000000000000000602082015290935060009250905062001b7a565b60035483608001511462001b1557505060408051808201909152601981527f77726f6e6720676f7665726e616e636520636f6e747261637400000000000000602082015290935060009250905062001b7a565b61014083015160009081526004602052604090205460ff161562001b5f5782600060405180606001604052806022815260200162003e676022913995509550955050505062001b7a565b50506040805160208101909152600081529093506001925090505b9193909250565b600062001bb57f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905062001bc2826200233d565b60408051600481526024810182526020810180516001600160e01b03167f8129fc1c00000000000000000000000000000000000000000000000000000000179052905160009182916001600160a01b0386169162001c20916200302f565b600060405180830381855af49150503d806000811462001c5d576040519150601f19603f3d011682016040523d82523d6000602084013e62001c62565b606091505b509150915081819062001c8a5760405162461bcd60e51b81526004016200076a919062003185565b50836001600160a01b0316836001600160a01b03167f2e4cc16c100f0b55e2df82ab0b1a7e294aa9cbd01b48fbaf622683fbc0507a4960405160405180910390a350505050565b600062001ce082602062003379565b835110156200186e5760405162461bcd60e51b815260206004820152601560248201527f746f55696e743235365f6f75744f66426f756e6473000000000000000000000060448201526064016200076a565b60608162001d4281601f62003379565b101562001d925760405162461bcd60e51b815260206004820152600e60248201527f736c6963655f6f766572666c6f7700000000000000000000000000000000000060448201526064016200076a565b62001d9e828462003379565b8451101562001df05760405162461bcd60e51b815260206004820152601160248201527f736c6963655f6f75744f66426f756e647300000000000000000000000000000060448201526064016200076a565b60608215801562001e11576040519150600082526020820160405262001e5d565b6040519150601f8416801560200281840101858101878315602002848b0101015b8183101562001e4c57805183526020928301920162001e32565b5050858452601f01601f1916604052505b50949350505050565b600080600062001e7e6000546001600160a01b031690565b6001600160a01b031663c0fd8bde856040518263ffffffff1660e01b815260040162001eab919062003185565b60006040518083038186803b15801562001ec457600080fd5b505afa15801562001ed9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405262001f03919081019062002e08565b92509250925081819062001f2c5760405162461bcd60e51b81526004016200076a919062003185565b5062001f38836200237f565b62001f865760405162461bcd60e51b815260206004820152600f60248201527f696e76616c696420656d6974746572000000000000000000000000000000000060448201526064016200076a565b600062001f978460e0015162000a9b565b905062001fb884610140015160009081526005602052604090205460ff1690565b15620020075760405162461bcd60e51b815260206004820152601a60248201527f7472616e7366657220616c726561647920636f6d706c6574656400000000000060448201526064016200076a565b6200202c8461014001516000908152600560205260409020805460ff19166001179055565b60025461ffff1661ffff168160e0015161ffff16146200208f5760405162461bcd60e51b815260206004820152601460248201527f696e76616c69642074617267657420636861696e00000000000000000000000060448201526064016200076a565b60006200209f60025461ffff1690565b61ffff16826020015161ffff161415620020bc5750805162002115565b602082810151835161ffff9091166000908152600783526040808220928252919092529020546001600160a01b03168062002112576200210f8360200151846000015185606001518660400151620023bc565b90505b90505b60c082015160025461ffff1661ffff16836020015161ffff16146200220d57826020015161ffff166001141562002180576080830151604080518082018252606086015181528186015160208083019182526000948552600a90529190922091518255516001909101555b608083015160a08401516040517fd3fc98640000000000000000000000000000000000000000000000000000000081526001600160a01b0385169263d3fc986492620021d392869291906004016200315b565b600060405180830381600087803b158015620021ee57600080fd5b505af115801562002203573d6000803e3d6000fd5b505050506200227f565b6080830151604051632142170760e11b81523060048201526001600160a01b0383811660248301526044820192909252908316906342842e0e90606401600060405180830381600087803b1580156200226557600080fd5b505af11580156200227a573d6000803e3d6000fd5b505050505b50505050505050565b600080620022968562001591565b9050620022ab6000546001600160a01b031690565b6001600160a01b031663b19a437e858584600f6040518563ffffffff1660e01b8152600401620022de939291906200326c565b6020604051808303818588803b158015620022f857600080fd5b505af11580156200230d573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019062002334919062002fe4565b95945050505050565b6200234881620026f9565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60008160800151620023a5836060015161ffff1660009081526009602052604090205490565b1415620023b457506001919050565b506000919050565b6000620023cc60025461ffff1690565b61ffff168561ffff1614156200244b5760405162461bcd60e51b815260206004820152602860248201527f63616e206f6e6c79207772617020746f6b656e732066726f6d20666f7265696760448201527f6e20636861696e7300000000000000000000000000000000000000000000000060648201526084016200076a565b61ffff851660009081526007602090815260408083208784529091529020546001600160a01b031615620024c25760405162461bcd60e51b815260206004820152601c60248201527f7772617070656420617373657420616c7265616479206578697374730000000060448201526064016200076a565b8461ffff166001141562002517577f576f726d686f6c65204272696467656420536f6c616e612d4e4654000000000092507f574f524d53504c4e46540000000000000000000000000000000000000000000091505b60007f03e72858000000000000000000000000000000000000000000000000000000006200254585620027bd565b6200255085620027bd565b308989604051602401620025699594939291906200319a565b60408051601f19818403018152918152602080830180516001600160e01b03167fffffffff000000000000000000000000000000000000000000000000000000009095169490941790935251909250600091620025cb91309185910162003137565b6040516020818303038152906040529050600060405180602001620025f09062002929565b601f1982820381018352601f90910116604081905262002616919084906020016200304d565b60408051601f19818403018152908290527fffff00000000000000000000000000000000000000000000000000000000000060f08b901b166020830152602282018990529150600090604201604051602081830303815290604052805190602001209050808251602084016000f59450843b6200269257600080fd5b61ffff891660009081526007602090815260408083208b84528252808320805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038a16908117909155835260089091529020805460ff1916600117905550505050949350505050565b803b6200276f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016200076a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b606060005b602081108015620028185750828160208110620027ef57634e487b7160e01b600052603260045260246000fd5b1a60f81b7fff000000000000000000000000000000000000000000000000000000000000001615155b156200283357806200282a81620033c7565b915050620027c2565b60008167ffffffffffffffff8111156200285d57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801562002888576020820181803683370190505b50905060005b828110156200292157848160208110620028b857634e487b7160e01b600052603260045260246000fd5b1a60f81b828281518110620028dd57634e487b7160e01b600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350806200291881620033c7565b9150506200288e565b509392505050565b610a31806200343683390190565b60006200294e62002948846200334e565b6200331a565b90508281528383830111156200296357600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b03811681146200299257600080fd5b919050565b600082601f830112620029a8578081fd5b8151602067ffffffffffffffff821115620029c757620029c7620033fb565b620029d7818360051b016200331a565b80838252828201915082860187848660071b8901011115620029f7578586fd5b855b8581101562002a6357608080838b03121562002a13578788fd5b62002a1d620032a0565b835181528684015187820152604062002a3881860162002b3c565b90820152606062002a4b85820162002b3c565b908201528552938501939190910190600101620029f9565b5090979650505050505050565b805180151581146200299257600080fd5b600082601f83011262002a92578081fd5b815162002aa362002948826200334e565b81815284602083860101111562002ab8578283fd5b62002acb82602083016020870162003394565b949350505050565b600082601f83011262002ae4578081fd5b62002af58383356020850162002937565b9392505050565b8035620029928162003411565b8051620029928162003411565b8051620029928162003422565b805167ffffffffffffffff811681146200299257600080fd5b805160ff811681146200299257600080fd5b60006020828403121562002b60578081fd5b62002af5826200297a565b60008060008060006080868803121562002b83578081fd5b62002b8e866200297a565b945062002b9e602087016200297a565b935060408601359250606086013567ffffffffffffffff8082111562002bc2578283fd5b818801915088601f83011262002bd6578283fd5b81358181111562002be5578384fd5b89602082850101111562002bf7578384fd5b9699959850939650602001949392505050565b600080600080600060a0868803121562002c22578283fd5b62002c2d866200297a565b945060208601359350604086013562002c468162003411565b925060608601359150608086013562002c5f8162003422565b809150509295509295909350565b60006020828403121562002c7f578081fd5b62002af58262002a70565b60006020828403121562002c9c578081fd5b5035919050565b60006020828403121562002cb5578081fd5b5051919050565b60006020828403121562002cce578081fd5b813567ffffffffffffffff81111562002ce5578182fd5b8201601f8101841362002cf6578182fd5b62002acb8482356020840162002937565b60006020828403121562002d19578081fd5b815167ffffffffffffffff81111562002d30578182fd5b62002acb8482850162002a81565b60006020828403121562002d50578081fd5b813567ffffffffffffffff8082111562002d68578283fd5b90830190610100828603121562002d7d578283fd5b62002d87620032cc565b8235815262002d996020840162002afc565b602082015260408301356040820152606083013560608201526080830135608082015260a08301358281111562002dce578485fd5b62002ddc8782860162002ad3565b60a08301525060c083013560c082015262002dfa60e0840162002afc565b60e082015295945050505050565b60008060006060848603121562002e1d578081fd5b835167ffffffffffffffff8082111562002e35578283fd5b90850190610160828803121562002e4a578283fd5b62002e54620032f3565b62002e5f8362002b3c565b815262002e6f6020840162002b16565b602082015262002e826040840162002b16565b604082015262002e956060840162002b09565b60608201526080830151608082015262002eb260a0840162002b23565b60a082015262002ec560c0840162002b3c565b60c082015260e08301518281111562002edc578485fd5b62002eea8982860162002a81565b60e08301525061010062002f0081850162002b16565b90820152610120838101518381111562002f18578586fd5b62002f268a82870162002997565b91830191909152506101408381015190820152945062002f496020870162002a70565b9350604086015191508082111562002f5f578283fd5b5062002f6e8682870162002a81565b9150509250925092565b60006020828403121562002f8a578081fd5b813562002af58162003411565b60006020828403121562002fa9578081fd5b815162002af58162003411565b6000806040838503121562002fc9578182fd5b823562002fd68162003411565b946020939093013593505050565b60006020828403121562002ff6578081fd5b62002af58262002b23565b600081518084526200301b81602086016020860162003394565b601f01601f19169290920160200192915050565b600082516200304381846020870162003394565b9190910192915050565b600083516200306181846020880162003394565b8351908301906200307781836020880162003394565b01949350505050565b60007fff00000000000000000000000000000000000000000000000000000000000000808d60f81b1683528b60018401527fffff000000000000000000000000000000000000000000000000000000000000808c60f01b1660218501528a6023850152896043850152886063850152818860f81b1660838501528651915062003111826084860160208a0162003394565b920160848101949094525060f09190911b1660a482015260a60198975050505050505050565b6001600160a01b038316815260406020820152600062002acb604083018462003001565b6001600160a01b038416815282602082015260606040820152600062002334606083018462003001565b60208152600062002af5602083018462003001565b60a081526000620031af60a083018862003001565b8281036020840152620031c3818862003001565b6001600160a01b03969096166040840152505061ffff92909216606083015260809091015292915050565b60208152815160208201526000602083015161ffff80821660408501526040850151606085015260608501516080850152608085015160a085015260a085015191506101008060c08601526200324961012086018462003001565b925060c086015160e08601528160e0870151168186015250508091505092915050565b63ffffffff841681526060602082015260006200328d606083018562003001565b905060ff83166040830152949350505050565b6040516080810167ffffffffffffffff81118282101715620032c657620032c6620033fb565b60405290565b604051610100810167ffffffffffffffff81118282101715620032c657620032c6620033fb565b604051610160810167ffffffffffffffff81118282101715620032c657620032c6620033fb565b604051601f8201601f1916810167ffffffffffffffff81118282101715620033465762003346620033fb565b604052919050565b600067ffffffffffffffff8211156200336b576200336b620033fb565b50601f01601f191660200190565b600082198211156200338f576200338f620033e5565b500190565b60005b83811015620033b157818101518382015260200162003397565b83811115620033c1576000848401525b50505050565b6000600019821415620033de57620033de620033e5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61ffff8116811462000e0a57600080fd5b63ffffffff8116811462000e0a57600080fdfe60806040523480156200001157600080fd5b5060405162000a3138038062000a318339810160408190526200003491620004ca565b81816200006360017fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d51620005e7565b600080516020620009ea833981519152146200008f57634e487b7160e01b600052600160045260246000fd5b6200009d82826000620000a7565b5050505062000650565b620000b2836200018c565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a2600082511180620000f45750805b15620001875762000185836001600160a01b0316635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200013857600080fd5b505afa1580156200014d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001739190620004ad565b836200033d60201b620000291760201c565b505b505050565b620001a2816200036c60201b620000551760201c565b620002025760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6200028c816001600160a01b0316635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024057600080fd5b505afa15801562000255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027b9190620004ad565b6200036c60201b620000551760201c565b620002f35760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401620001f9565b806200031c600080516020620009ea83398151915260001b6200037260201b6200005b1760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b606062000365838360405180606001604052806027815260200162000a0a6027913962000375565b9392505050565b3b151590565b90565b6060833b620003d65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620001f9565b600080856001600160a01b031685604051620003f3919062000594565b600060405180830381855af49150503d806000811462000430576040519150601f19603f3d011682016040523d82523d6000602084013e62000435565b606091505b5090925090506200044882828662000452565b9695505050505050565b606083156200046357508162000365565b825115620004745782518084602001fd5b8160405162461bcd60e51b8152600401620001f99190620005b2565b80516001600160a01b0381168114620004a857600080fd5b919050565b600060208284031215620004bf578081fd5b620003658262000490565b60008060408385031215620004dd578081fd5b620004e88362000490565b60208401519092506001600160401b038082111562000505578283fd5b818501915085601f83011262000519578283fd5b8151818111156200052e576200052e6200063a565b604051601f8201601f19908116603f011681019083821181831017156200055957620005596200063a565b8160405282815288602084870101111562000572578586fd5b620005858360208301602088016200060b565b80955050505050509250929050565b60008251620005a88184602087016200060b565b9190910192915050565b6020815260008251806020840152620005d38160408501602087016200060b565b601f01601f19169190910160400192915050565b6000828210156200060657634e487b7160e01b81526011600452602481fd5b500390565b60005b83811015620006285781810151838201526020016200060e565b83811115620001855750506000910152565b634e487b7160e01b600052604160045260246000fd5b61038a80620006606000396000f3fe60806040523661001357610011610017565b005b6100115b61002761002261005e565b610120565b565b606061004e838360405180606001604052806027815260200161032e60279139610144565b9392505050565b3b151590565b90565b600061009e7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d505473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16635c60da1b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156100e357600080fd5b505afa1580156100f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011b919061027a565b905090565b3660008037600080366000845af43d6000803e80801561013f573d6000f35b3d6000fd5b6060833b6101bf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e7472616374000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff16856040516101e791906102ae565b600060405180830381855af49150503d8060008114610222576040519150601f19603f3d011682016040523d82523d6000602084013e610227565b606091505b5091509150610237828286610241565b9695505050505050565b6060831561025057508161004e565b8251156102605782518084602001fd5b8160405162461bcd60e51b81526004016101b691906102ca565b60006020828403121561028b578081fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461004e578182fd5b600082516102c08184602087016102fd565b9190910192915050565b60208152600082518060208401526102e98160408501602087016102fd565b601f01601f19169190910160400192915050565b60005b83811015610318578181015183820152602001610300565b83811115610327576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201f591e6f9f61b5e1cf3483e74c8a87d89c18d923b2daed02012de9ff8021095364736f6c63430008040033a3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564676f7665726e616e636520616374696f6e20616c726561647920636f6e73756d6564a264697066735822122095084ad81e6f2137ec05b580c3724dc8441b2b41df8a441732819120519d2c3e64736f6c63430008040033