UNPKG

@vechain/vebetterdao-contracts

Version:

Open-source repository that houses the smart contracts powering the decentralized VeBetterDAO on the VeChain Thor blockchain.

306 lines (305 loc) 33 kB
{ "_format": "hh-sol-artifact-1", "contractName": "MintingLogic", "sourceName": "contracts/mocks/Stargate/StargateNFT/libraries/MintingLogic.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "target", "type": "address" } ], "name": "AddressEmptyCode", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "AddressInsufficientBalance", "type": "error" }, { "inputs": [], "name": "CheckpointUnorderedInsertion", "type": "error" }, { "inputs": [], "name": "FailedInnerCall", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "currentAllowance", "type": "uint256" }, { "internalType": "uint256", "name": "requiredAmount", "type": "uint256" } ], "name": "InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "tokenAddress", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "required", "type": "uint256" }, { "internalType": "uint256", "name": "provided", "type": "uint256" } ], "name": "InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "levelId", "type": "uint8" } ], "name": "LevelCapReached", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "levelId", "type": "uint8" } ], "name": "LevelNotFound", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "MaturityPeriodEnded", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "bits", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "SafeCastOverflowedUintDowncast", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "SafeERC20FailedOperation", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrationFailed", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenNotEligible", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenNotReadyForMigration", "type": "error" }, { "inputs": [], "name": "ValueCannotBeZero", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "paidBy", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "paidAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "boostedBlocks", "type": "uint256" } ], "name": "MaturityPeriodBoosted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "uint8", "name": "levelId", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "vetAmountStaked", "type": "uint256" } ], "name": "TokenBurned", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "uint8", "name": "levelId", "type": "uint8" }, { "indexed": true, "internalType": "bool", "name": "migrated", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "vetAmountStaked", "type": "uint256" } ], "name": "TokenMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" } ], "name": "WhitelistEntryRemoved", "type": "event" } ], "bytecode": "0x6119d761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c806351a1d6eb14610066578063618673e2146100885780636788e28e146100ba578063ce9f3679146100da578063fe18c37f146100fa575b600080fd5b81801561007257600080fd5b506100866100813660046115ae565b61010d565b005b81801561009457600080fd5b506100a86100a33660046115f4565b61011b565b60405190815260200160405180910390f35b8180156100c657600080fd5b506100866100d5366004611636565b610132565b8180156100e657600080fd5b506100866100f53660046115ae565b61043b565b6100a86101083660046115ae565b610445565b610117828261045a565b5050565b60006101288484846109b4565b90505b9392505050565b61013a610bec565b600082815260098501602052604090205465ffffffffffff919091166001600160401b0390911611610187576040516355ce4bd360e01b8152600481018290526024015b60405180910390fd5b60006101938483610bfb565b60028501546040516370a0823160e01b81529192506000916001600160a01b03909116906370a08231906101cb90879060040161166e565b602060405180830381865afa1580156101e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020c9190611682565b60028601546040516370a0823160e01b815291925083916001600160a01b03909116906370a082319061024390889060040161166e565b602060405180830381865afa158015610260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102849190611682565b10156102b857600285015460405163861da4bd60e01b815261017e916001600160a01b03169086908590859060040161169b565b6002850154604051636eb1769f60e11b81526001600160a01b038681166004830152306024830152600092169063dd62ed3e90604401602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f9190611682565b90508281101561035a578430828560405163246fb68960e21b815260040161017e949392919061169b565b6000610364610bec565b60008681526009890160205260409020546103909165ffffffffffff16906001600160401b03166116da565b6001600160401b031690506103a3610bec565b6000868152600989016020526040812080546001600160401b03191665ffffffffffff939093169290921790915560028801546103ee916001600160a01b0390911690889087610c91565b856001600160a01b0316857f643dcede442f538fa065383e2935764793a8708d195c8a51a1ecd7d2cf81bdb3868460405161042a929190611701565b60405180910390a350505050505050565b6101178282610cf1565b60006104518383610bfb565b90505b92915050565b8060000361047b576040516363868c5560e11b815260040160405180910390fd5b600081815260088301602052604090206001015460ff161515806105195750815460405163bfc206ed60e01b815260048101839052600091600160381b90046001600160a01b03169063bfc206ed90602401602060405180830381865afa1580156104ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050e919061170f565b6001600160a01b0316145b1561053a5760405163776f139d60e01b81526004810182905260240161017e565b815460405163295d33a960e21b8152600481018390526000918291829182918291600160381b90046001600160a01b03169063a574cea49060240160e060405180830381865afa158015610592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b69190611758565b50509450945094509450945082806105cb5750815b8061066f57508660000160079054906101000a90046001600160a01b03166001600160a01b0316638c8d04a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064a91906117e3565b61065490826117fe565b6001600160401b0316610665610ee1565b65ffffffffffff16105b1561069057604051636750071d60e01b81526004810187905260240161017e565b600061069c8886610eeb565b60a0015190506106ac888661104f565b60ff851660009081526007890160205260408120805463ffffffff16916106d28361181e565b91906101000a81548163ffffffff021916908363ffffffff160217905550506040518060a001604052808881526020018660ff168152602001610713610bec565b65ffffffffffff1681526020810183905260400161072f610ee1565b65ffffffffffff908116909152600089815260088b0160209081526040918290208451815590840151600182018054938601516001600160401b0316610100026001600160481b031990941660ff909216919091179290921790915560608301516002820155608090920151600390920180549290911665ffffffffffff199092169190911790556107bf610bec565b600088815260098a016020526040808220805465ffffffffffff949094166001600160401b0319909416939093179092558954915163581f016160e11b8152600481018a90526024810191909152600160381b9091046001600160a01b03169063b03e02c290604401600060405180830381600087803b15801561084257600080fd5b505af1158015610856573d6000803e3d6000fd5b5050604051630f5dc02b60e31b8152309250637aee0158915061087f9089908b90600401611841565b600060405180830381600087803b15801561089957600080fd5b505af11580156108ad573d6000803e3d6000fd5b505050600088815260088a01602052604090206001015460ff16159050806109505750875460405163bfc206ed60e01b815260048101899052600091600160381b90046001600160a01b03169063bfc206ed90602401602060405180830381865afa158015610920573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610944919061170f565b6001600160a01b031614155b1561097157604051633561526560e01b81526004810188905260240161017e565b600115158560ff16876001600160a01b03166000805160206119828339815191528a856040516109a2929190611701565b60405180910390a45050505050505050565b6000806109c18585610eeb565b60ff8516600090815260078701602052604090205490915063ffffffff166109e98686611077565b6001600160d01b031610610a15576040516335d4d7ef60e21b815260ff8516600482015260240161017e565b600385018054906000610a278361185a565b919050555084600301549150610a3d858561104f565b6040518060a001604052808381526020018560ff168152602001610a5f610bec565b65ffffffffffff16815260a08301516020820152604001610a7e610ee1565b65ffffffffffff90811690915260008481526008880160209081526040918290208451815590840151600182018054938601516001600160401b0316610100026001600160481b031990941660ff90921691909117929092179091556060808401516002830155608090930151600390910180549190921665ffffffffffff19909116179055810151610b0f610bec565b65ffffffffffff16610b2191906117fe565b60008381526009870160205260409081902080546001600160401b0319166001600160401b03939093169290921790915551630f5dc02b60e31b81523090637aee015890610b759086908690600401611841565b600060405180830381600087803b158015610b8f57600080fd5b505af1158015610ba3573d6000803e3d6000fd5b50505050600015158460ff16846001600160a01b0316600080516020611982833981519152858560a00151604051610bdc929190611701565b60405180910390a4509392505050565b6000610bf6611094565b905090565b60008181526009830160205260408120546001600160401b031680610c1e610bec565b65ffffffffffff161115610c36576000915050610454565b600083815260088501602090815260408083206001015460ff168352600e8701909152902054610c64610bec565b610c769065ffffffffffff16836116da565b6001600160401b0316610c899190611873565b949350505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ceb90859061109f565b50505050565b6000610cfd83836110f9565b6040516331a9108f60e11b8152600481018490529091506000903090636352211e90602401602060405180830381865afa158015610d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d63919061170f565b60405163021399a160e61b81526004810185905290915030906384e6684090602401600060405180830381600087803b158015610d9f57600080fd5b505af1158015610db3573d6000803e3d6000fd5b505050600084815260088601602090815260408083208381556001810180546001600160481b031916905560028101849055600301805465ffffffffffff1916905560098801825290912080546001600160401b0319169055830151610e1b91508590611196565b60208083015160ff9081166000908152600587019092526040909120600101541615610e8c5760208083015160ff1660009081526007860190915260408120805463ffffffff1691610e6c8361188a565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b816020015160ff16816001600160a01b03167f355103f9b8153e2d8052446029758fac8de69ef88551f67429b4873d21b2cd6c858560600151604051610ed3929190611701565b60405180910390a350505050565b6000610bf66111b4565b6040805160c081018252606080825260006020830181905292820183905281018290526080810182905260a081019190915260ff82166000908152600584016020526040808220815160c08101909252805482908290610f4a906118aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610f76906118aa565b8015610fc35780601f10610f9857610100808354040283529160200191610fc3565b820191906000526020600020905b815481529060010190602001808311610fa657829003601f168201915b5050509183525050600182015460ff808216151560208401526101008204166040808401919091526001600160401b0362010000830481166060850152600160501b909204909116608083015260029092015460a09091015281015190915061102d9085906111bf565b61045157604051632352fba560e01b815260ff8416600482015260240161017e565b600061105b8383611077565b9050611072838361106d8460016118e4565b6111e4565b505050565b60ff81166000908152600683016020526040812061045190611211565b6000610bf643611258565b60006110b46001600160a01b0384168361128f565b905080516000141580156110d95750808060200190518101906110d79190611904565b155b156110725782604051635274afe760e01b815260040161017e919061166e565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915261112d8261129d565b5060009081526008919091016020908152604091829020825160a08101845281548152600182015460ff8116938201939093526101009092046001600160401b0316928201929092526002820154606082015260039091015465ffffffffffff16608082015290565b60006111a28383611077565b9050611072838361106d60018561191f565b6000610bf642611258565b6000808260ff161180156104515750509054600160301b900460ff9081169116111590565b61120a6111ef610bec565b60ff84166000908152600686016020526040902090836112fd565b5050505050565b8054600090801561124f576112398361122b60018461193f565b600091825260209091200190565b54600160301b90046001600160d01b031661012b565b60009392505050565b600065ffffffffffff82111561128b576040516306dfcc6560e41b8152603060048201526024810183905260440161017e565b5090565b606061045183836000611318565b6040516331a9108f60e11b8152600481018290523090636352211e90602401602060405180830381865afa1580156112d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610117919061170f565b60008061130b8585856113b5565b915091505b935093915050565b60608147101561133d573060405163cd78605960e01b815260040161017e919061166e565b600080856001600160a01b031684866040516113599190611952565b60006040518083038185875af1925050503d8060008114611396576040519150601f19603f3d011682016040523d82523d6000602084013e61139b565b606091505b50915091506113ab86838361152f565b9695505050505050565b8254600090819080156114d45760006113d38761122b60018561193f565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b03166020840152919250908716101561142757604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603611473578461144a8861122b60018661193f565b80546001600160d01b0392909216600160301b0265ffffffffffff9092169190911790556114c4565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b6020015192508391506113109050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081611310565b6060826115445761153f82611582565b61012b565b815115801561155b57506001600160a01b0384163b155b1561157b5783604051639996b31560e01b815260040161017e919061166e565b508061012b565b8051156115925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b600080604083850312156115c157600080fd5b50508035926020909101359150565b60ff811681146115ab57600080fd5b6001600160a01b03811681146115ab57600080fd5b60008060006060848603121561160957600080fd5b83359250602084013561161b816115d0565b9150604084013561162b816115df565b809150509250925092565b60008060006060848603121561164b57600080fd5b83359250602084013561165d816115df565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b60006020828403121561169457600080fd5b5051919050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b634e487b7160e01b600052601160045260246000fd5b6001600160401b038281168282160390808211156116fa576116fa6116c4565b5092915050565b918252602082015260400190565b60006020828403121561172157600080fd5b8151610451816115df565b8051801515811461173c57600080fd5b919050565b80516001600160401b038116811461173c57600080fd5b600080600080600080600060e0888a03121561177357600080fd5b875161177e816115df565b602089015190975061178f816115d0565b955061179d6040890161172c565b94506117ab6060890161172c565b93506117b960808901611741565b92506117c760a08901611741565b91506117d560c08901611741565b905092959891949750929550565b6000602082840312156117f557600080fd5b61045182611741565b6001600160401b038181168382160190808211156116fa576116fa6116c4565b600063ffffffff808316818103611837576118376116c4565b6001019392505050565b6001600160a01b03929092168252602082015260400190565b60006001820161186c5761186c6116c4565b5060010190565b8082028115828204841417610454576104546116c4565b600063ffffffff8216806118a0576118a06116c4565b6000190192915050565b600181811c908216806118be57607f821691505b6020821081036118de57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160d01b038181168382160190808211156116fa576116fa6116c4565b60006020828403121561191657600080fd5b6104518261172c565b6001600160d01b038281168282160390808211156116fa576116fa6116c4565b81810381811115610454576104546116c4565b6000825160005b818110156119735760208186018101518583015201611959565b50600092019182525091905056fe77da7e47d62c495735ba6de40ed9f4f0cf78d6a35e8b7e61b87145f4c91ee0f7a26469706673582212203d3dc88f94085044326d1b298b34b97e17bb975f55307ce1e52984dc6eeb957c64736f6c63430008140033", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100615760003560e01c806351a1d6eb14610066578063618673e2146100885780636788e28e146100ba578063ce9f3679146100da578063fe18c37f146100fa575b600080fd5b81801561007257600080fd5b506100866100813660046115ae565b61010d565b005b81801561009457600080fd5b506100a86100a33660046115f4565b61011b565b60405190815260200160405180910390f35b8180156100c657600080fd5b506100866100d5366004611636565b610132565b8180156100e657600080fd5b506100866100f53660046115ae565b61043b565b6100a86101083660046115ae565b610445565b610117828261045a565b5050565b60006101288484846109b4565b90505b9392505050565b61013a610bec565b600082815260098501602052604090205465ffffffffffff919091166001600160401b0390911611610187576040516355ce4bd360e01b8152600481018290526024015b60405180910390fd5b60006101938483610bfb565b60028501546040516370a0823160e01b81529192506000916001600160a01b03909116906370a08231906101cb90879060040161166e565b602060405180830381865afa1580156101e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020c9190611682565b60028601546040516370a0823160e01b815291925083916001600160a01b03909116906370a082319061024390889060040161166e565b602060405180830381865afa158015610260573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102849190611682565b10156102b857600285015460405163861da4bd60e01b815261017e916001600160a01b03169086908590859060040161169b565b6002850154604051636eb1769f60e11b81526001600160a01b038681166004830152306024830152600092169063dd62ed3e90604401602060405180830381865afa15801561030b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032f9190611682565b90508281101561035a578430828560405163246fb68960e21b815260040161017e949392919061169b565b6000610364610bec565b60008681526009890160205260409020546103909165ffffffffffff16906001600160401b03166116da565b6001600160401b031690506103a3610bec565b6000868152600989016020526040812080546001600160401b03191665ffffffffffff939093169290921790915560028801546103ee916001600160a01b0390911690889087610c91565b856001600160a01b0316857f643dcede442f538fa065383e2935764793a8708d195c8a51a1ecd7d2cf81bdb3868460405161042a929190611701565b60405180910390a350505050505050565b6101178282610cf1565b60006104518383610bfb565b90505b92915050565b8060000361047b576040516363868c5560e11b815260040160405180910390fd5b600081815260088301602052604090206001015460ff161515806105195750815460405163bfc206ed60e01b815260048101839052600091600160381b90046001600160a01b03169063bfc206ed90602401602060405180830381865afa1580156104ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050e919061170f565b6001600160a01b0316145b1561053a5760405163776f139d60e01b81526004810182905260240161017e565b815460405163295d33a960e21b8152600481018390526000918291829182918291600160381b90046001600160a01b03169063a574cea49060240160e060405180830381865afa158015610592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b69190611758565b50509450945094509450945082806105cb5750815b8061066f57508660000160079054906101000a90046001600160a01b03166001600160a01b0316638c8d04a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064a91906117e3565b61065490826117fe565b6001600160401b0316610665610ee1565b65ffffffffffff16105b1561069057604051636750071d60e01b81526004810187905260240161017e565b600061069c8886610eeb565b60a0015190506106ac888661104f565b60ff851660009081526007890160205260408120805463ffffffff16916106d28361181e565b91906101000a81548163ffffffff021916908363ffffffff160217905550506040518060a001604052808881526020018660ff168152602001610713610bec565b65ffffffffffff1681526020810183905260400161072f610ee1565b65ffffffffffff908116909152600089815260088b0160209081526040918290208451815590840151600182018054938601516001600160401b0316610100026001600160481b031990941660ff909216919091179290921790915560608301516002820155608090920151600390920180549290911665ffffffffffff199092169190911790556107bf610bec565b600088815260098a016020526040808220805465ffffffffffff949094166001600160401b0319909416939093179092558954915163581f016160e11b8152600481018a90526024810191909152600160381b9091046001600160a01b03169063b03e02c290604401600060405180830381600087803b15801561084257600080fd5b505af1158015610856573d6000803e3d6000fd5b5050604051630f5dc02b60e31b8152309250637aee0158915061087f9089908b90600401611841565b600060405180830381600087803b15801561089957600080fd5b505af11580156108ad573d6000803e3d6000fd5b505050600088815260088a01602052604090206001015460ff16159050806109505750875460405163bfc206ed60e01b815260048101899052600091600160381b90046001600160a01b03169063bfc206ed90602401602060405180830381865afa158015610920573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610944919061170f565b6001600160a01b031614155b1561097157604051633561526560e01b81526004810188905260240161017e565b600115158560ff16876001600160a01b03166000805160206119828339815191528a856040516109a2929190611701565b60405180910390a45050505050505050565b6000806109c18585610eeb565b60ff8516600090815260078701602052604090205490915063ffffffff166109e98686611077565b6001600160d01b031610610a15576040516335d4d7ef60e21b815260ff8516600482015260240161017e565b600385018054906000610a278361185a565b919050555084600301549150610a3d858561104f565b6040518060a001604052808381526020018560ff168152602001610a5f610bec565b65ffffffffffff16815260a08301516020820152604001610a7e610ee1565b65ffffffffffff90811690915260008481526008880160209081526040918290208451815590840151600182018054938601516001600160401b0316610100026001600160481b031990941660ff90921691909117929092179091556060808401516002830155608090930151600390910180549190921665ffffffffffff19909116179055810151610b0f610bec565b65ffffffffffff16610b2191906117fe565b60008381526009870160205260409081902080546001600160401b0319166001600160401b03939093169290921790915551630f5dc02b60e31b81523090637aee015890610b759086908690600401611841565b600060405180830381600087803b158015610b8f57600080fd5b505af1158015610ba3573d6000803e3d6000fd5b50505050600015158460ff16846001600160a01b0316600080516020611982833981519152858560a00151604051610bdc929190611701565b60405180910390a4509392505050565b6000610bf6611094565b905090565b60008181526009830160205260408120546001600160401b031680610c1e610bec565b65ffffffffffff161115610c36576000915050610454565b600083815260088501602090815260408083206001015460ff168352600e8701909152902054610c64610bec565b610c769065ffffffffffff16836116da565b6001600160401b0316610c899190611873565b949350505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610ceb90859061109f565b50505050565b6000610cfd83836110f9565b6040516331a9108f60e11b8152600481018490529091506000903090636352211e90602401602060405180830381865afa158015610d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d63919061170f565b60405163021399a160e61b81526004810185905290915030906384e6684090602401600060405180830381600087803b158015610d9f57600080fd5b505af1158015610db3573d6000803e3d6000fd5b505050600084815260088601602090815260408083208381556001810180546001600160481b031916905560028101849055600301805465ffffffffffff1916905560098801825290912080546001600160401b0319169055830151610e1b91508590611196565b60208083015160ff9081166000908152600587019092526040909120600101541615610e8c5760208083015160ff1660009081526007860190915260408120805463ffffffff1691610e6c8361188a565b91906101000a81548163ffffffff021916908363ffffffff160217905550505b816020015160ff16816001600160a01b03167f355103f9b8153e2d8052446029758fac8de69ef88551f67429b4873d21b2cd6c858560600151604051610ed3929190611701565b60405180910390a350505050565b6000610bf66111b4565b6040805160c081018252606080825260006020830181905292820183905281018290526080810182905260a081019190915260ff82166000908152600584016020526040808220815160c08101909252805482908290610f4a906118aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610f76906118aa565b8015610fc35780601f10610f9857610100808354040283529160200191610fc3565b820191906000526020600020905b815481529060010190602001808311610fa657829003601f168201915b5050509183525050600182015460ff808216151560208401526101008204166040808401919091526001600160401b0362010000830481166060850152600160501b909204909116608083015260029092015460a09091015281015190915061102d9085906111bf565b61045157604051632352fba560e01b815260ff8416600482015260240161017e565b600061105b8383611077565b9050611072838361106d8460016118e4565b6111e4565b505050565b60ff81166000908152600683016020526040812061045190611211565b6000610bf643611258565b60006110b46001600160a01b0384168361128f565b905080516000141580156110d95750808060200190518101906110d79190611904565b155b156110725782604051635274afe760e01b815260040161017e919061166e565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915261112d8261129d565b5060009081526008919091016020908152604091829020825160a08101845281548152600182015460ff8116938201939093526101009092046001600160401b0316928201929092526002820154606082015260039091015465ffffffffffff16608082015290565b60006111a28383611077565b9050611072838361106d60018561191f565b6000610bf642611258565b6000808260ff161180156104515750509054600160301b900460ff9081169116111590565b61120a6111ef610bec565b60ff84166000908152600686016020526040902090836112fd565b5050505050565b8054600090801561124f576112398361122b60018461193f565b600091825260209091200190565b54600160301b90046001600160d01b031661012b565b60009392505050565b600065ffffffffffff82111561128b576040516306dfcc6560e41b8152603060048201526024810183905260440161017e565b5090565b606061045183836000611318565b6040516331a9108f60e11b8152600481018290523090636352211e90602401602060405180830381865afa1580156112d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610117919061170f565b60008061130b8585856113b5565b915091505b935093915050565b60608147101561133d573060405163cd78605960e01b815260040161017e919061166e565b600080856001600160a01b031684866040516113599190611952565b60006040518083038185875af1925050503d8060008114611396576040519150601f19603f3d011682016040523d82523d6000602084013e61139b565b606091505b50915091506113ab86838361152f565b9695505050505050565b8254600090819080156114d45760006113d38761122b60018561193f565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b03166020840152919250908716101561142757604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff808816911603611473578461144a8861122b60018661193f565b80546001600160d01b0392909216600160301b0265ffffffffffff9092169190911790556114c4565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b6020015192508391506113109050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b029190931617920191909155905081611310565b6060826115445761153f82611582565b61012b565b815115801561155b57506001600160a01b0384163b155b1561157b5783604051639996b31560e01b815260040161017e919061166e565b508061012b565b8051156115925780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b600080604083850312156115c157600080fd5b50508035926020909101359150565b60ff811681146115ab57600080fd5b6001600160a01b03811681146115ab57600080fd5b60008060006060848603121561160957600080fd5b83359250602084013561161b816115d0565b9150604084013561162b816115df565b809150509250925092565b60008060006060848603121561164b57600080fd5b83359250602084013561165d816115df565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b60006020828403121561169457600080fd5b5051919050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b634e487b7160e01b600052601160045260246000fd5b6001600160401b038281168282160390808211156116fa576116fa6116c4565b5092915050565b918252602082015260400190565b60006020828403121561172157600080fd5b8151610451816115df565b8051801515811461173c57600080fd5b919050565b80516001600160401b038116811461173c57600080fd5b600080600080600080600060e0888a03121561177357600080fd5b875161177e816115df565b602089015190975061178f816115d0565b955061179d6040890161172c565b94506117ab6060890161172c565b93506117b960808901611741565b92506117c760a08901611741565b91506117d560c08901611741565b905092959891949750929550565b6000602082840312156117f557600080fd5b61045182611741565b6001600160401b038181168382160190808211156116fa576116fa6116c4565b600063ffffffff808316818103611837576118376116c4565b6001019392505050565b6001600160a01b03929092168252602082015260400190565b60006001820161186c5761186c6116c4565b5060010190565b8082028115828204841417610454576104546116c4565b600063ffffffff8216806118a0576118a06116c4565b6000190192915050565b600181811c908216806118be57607f821691505b6020821081036118de57634e487b7160e01b600052602260045260246000fd5b50919050565b6001600160d01b038181168382160190808211156116fa576116fa6116c4565b60006020828403121561191657600080fd5b6104518261172c565b6001600160d01b038281168282160390808211156116fa576116fa6116c4565b81810381811115610454576104546116c4565b6000825160005b818110156119735760208186018101518583015201611959565b50600092019182525091905056fe77da7e47d62c495735ba6de40ed9f4f0cf78d6a35e8b7e61b87145f4c91ee0f7a26469706673582212203d3dc88f94085044326d1b298b34b97e17bb975f55307ce1e52984dc6eeb957c64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} }