2 txs
3 calls
constructor
constructor(address nftInventory_, address lineManager_, address feeReceiver_, address nftReceiver_, address verificator_, uint256 expireTime_)
functions
currencies
viewfunction currencies(uint256) view returns (address)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
encodeRecipe
purefunction encodeRecipe(tuple recipe_) pure returns (bytes)
erc1155Addresses
viewfunction erc1155Addresses(uint256) view returns (address)
erc721Contracts
viewfunction erc721Contracts(uint256) view returns (address)
generateResultOfUsers
viewfunction generateResultOfUsers(address, uint256) view returns (uint256 tokenId, uint256 unlockedAt, uint16 lineNumber, uint8 ercType, uint8 contractType, uint128 quantity)
generateTimeOfUsers
viewfunction generateTimeOfUsers(address) view returns (uint256)
getAllItemsNotClaimedByUser
viewfunction getAllItemsNotClaimedByUser(address userAddress_) view returns (tuple[])
getGenerateResultsOfUser
viewfunction getGenerateResultsOfUser(address userAddress_, uint256[] generateIds_) view returns (tuple[])
getLatestResultOfLines
viewfunction getLatestResultOfLines(address userAddress_) view returns (tuple[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
latestGenerateIdOfLineByUsers
viewfunction latestGenerateIdOfLineByUsers(address, uint16) view returns (uint256)
markedGenerateIdOfUsers
viewfunction markedGenerateIdOfUsers(address) view returns (uint256)
OPERATOR
viewfunction OPERATOR() view returns (bytes32)
paused
viewfunction paused() view returns (bool)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
addCurrency
nonpayablefunction addCurrency(address addr_)
addErc1155Address
nonpayablefunction addErc1155Address(address addr_)
addErc721Contract
nonpayablefunction addErc721Contract(address addr_)
addLine
nonpayablefunction addLine(uint16 lineNumber_, tuple priceInfo_, tuple signature_)
addOperator
nonpayablefunction addOperator(address operator)
claimAll
nonpayablefunction claimAll()
claimMulti
nonpayablefunction claimMulti(uint256[] generateIds)
claimOne
nonpayablefunction claimOne(uint16 lineNumber_)
generateErc1155
nonpayablefunction generateErc1155(uint16 lineNumber_, tuple recipe_, tuple signature_)
generateErc721
nonpayablefunction generateErc721(uint16 lineNumber_, tuple recipe_, tuple signature_)
generateNow
nonpayablefunction generateNow(uint16 lineNumber_, tuple priceInfo_, tuple signature_)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
onERC1155BatchReceived
nonpayablefunction onERC1155BatchReceived(address, address, uint256[], uint256[], bytes) returns (bytes4)
onERC1155Received
nonpayablefunction onERC1155Received(address, address, uint256, uint256, bytes) returns (bytes4)
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256, bytes) returns (bytes4)
pause
nonpayablefunction pause()
removeOperator
nonpayablefunction removeOperator(address operator)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
resetCurrencies
nonpayablefunction resetCurrencies()
resetErc1155Addresses
nonpayablefunction resetErc1155Addresses()
resetErc721Contracts
nonpayablefunction resetErc721Contracts()
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setFeeReceiverAddress
nonpayablefunction setFeeReceiverAddress(address addr_)
setLineManager
nonpayablefunction setLineManager(address addr_)
setMarkedGenerateIdOfUsers
nonpayablefunction setMarkedGenerateIdOfUsers(address[] userAddresses_, uint256[] markedGenerateIds_)
setNftInventory
nonpayablefunction setNftInventory(address addr_)
setNftReceiverAddress
nonpayablefunction setNftReceiverAddress(address addr_)
setSignatureExpireTime
nonpayablefunction setSignatureExpireTime(uint256 time_)
setVerificatorAddress
nonpayablefunction setVerificatorAddress(address addr_)
unpause
nonpayablefunction unpause()
events
Claimed
event Claimed(uint256[] generateIds, address indexed userAddress, uint256 timestamp)
LineAdded
event LineAdded(uint16 lineNumber, address indexed userAddress, uint256 price, uint8 currencyType, uint256 timestamp)
LineSpeeded
event LineSpeeded(uint16 lineNumber, uint256 generateId, address indexed userAddress, uint256 price, uint8 currencyType, uint256 timestamp)
NftGenerated
event NftGenerated(uint256 tokenId, uint16 indexed recipeId, (uint256 tokenId, uint8 ercType, uint8 contractType, uint128 quantity)[] elements, (uint256 generateId, uint256 lockedAt, uint256 unlockedAt, uint16 lineNumber, address userAddress) lock)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b50604051620058323803806200583283398101604081905262000034916200018a565b600180556002805460ff19169055600a80546001600160a01b03199081166001600160a01b0388811691909117909255600b80548216898416179055600c80548216878416179055600d80548216868416179055600e8054909116918416919091179055600f819055620000b16000620000ab3390565b620000bd565b50505050505062000202565b620000c98282620000cd565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620000c9576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001293390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b80516001600160a01b03811681146200018557600080fd5b919050565b60008060008060008060c08789031215620001a457600080fd5b620001af876200016d565b9550620001bf602088016200016d565b9450620001cf604088016200016d565b9350620001df606088016200016d565b9250620001ef608088016200016d565b915060a087015190509295509295509295565b61562080620002126000396000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c806386f1aa3e11610167578063c14a5523116100ce578063e4717f6a11610087578063e4717f6a14610687578063e906ae251461069a578063ea2452fa146106ad578063ebc52d37146106c0578063f23a6e61146106d3578063f6d1c271146106f257600080fd5b8063c14a552314610608578063cf8694cd14610633578063d1058e5914610646578063d547741f1461064e578063dccb1fec14610661578063e3302afb1461067457600080fd5b80639870d7fe116101205780639870d7fe146105945780639c4e3148146105a7578063a217fddf146105ba578063ac8a584a146105c2578063b9da2349146105d5578063bc197c81146105f557600080fd5b806386f1aa3e146105245780638ab234b61461052c5780638f2c5cdc1461053f57806390a708ab1461055257806391d148541461055a578063983d27371461056d57600080fd5b806338d99df61161020b5780635c975abb116101c45780635c975abb1461045f5780635cec62611461046a57806360f15ded1461047d57806366f099db14610490578063730c1857146105095780638456cb591461051c57600080fd5b806338d99df6146103f65780633b31cf33146103fe5780633f4ba83a1461041157806349d65692146104195780634cfcc36f146104395780635b8818bb1461044c57600080fd5b80631910c2161161025d5780631910c2161461034f5780632018b8481461036f578063248a9ca31461039a5780632a549af2146103bd5780632f2ff15d146103d057806336568abe146103e357600080fd5b806301ffc9a71461029a57806304839f1f146102c257806305e52a72146102d757806312f0a89c146102ea578063150b7a0214610318575b600080fd5b6102ad6102a8366004614594565b610705565b60405190151581526020015b60405180910390f35b6102d56102d03660046145da565b610716565b005b6102d56102e53660046145da565b610768565b61030a6102f83660046145da565b60096020526000908152604090205481565b6040519081526020016102b9565b6103366103263660046146aa565b630a85bd0160e11b949350505050565b6040516001600160e01b031990911681526020016102b9565b61036261035d3660046145da565b6107b1565b6040516102b99190614749565b61030a61037d3660046147eb565b600660209081526000928352604080842090915290825290205481565b61030a6103a8366004614822565b60009081526020819052604090206001015490565b6102d56103cb366004614865565b6109a2565b6102d56103de3660046148da565b611165565b6102d56103f13660046148da565b61118a565b6102d5611208565b6102d561040c366004614906565b61123d565b6102d56114bc565b61030a6104273660046145da565b60076020526000908152604090205481565b6102d5610447366004614906565b6114eb565b6102d561045a366004614865565b611887565b60025460ff166102ad565b6102d56104783660046145da565b611f52565b61036261048b3660046145da565b611f9b565b6104f761049e366004614967565b600860209081526000928352604080842090915290825290208054600182015460029092015490919061ffff81169060ff62010000820481169163010000008104909116906001600160801b03600160201b9091041686565b6040516102b996959493929190614991565b6102d56105173660046145da565b612189565b6102d561220b565b6102d561223a565b6102d561053a3660046145da565b61226d565b6102d561054d366004614822565b6122ef565b6102d561231b565b6102ad6105683660046148da565b61234e565b61030a7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c81565b6102d56105a23660046145da565b612377565b6102d56105b53660046145da565b6123cb565b61030a600081565b6102d56105d03660046145da565b612414565b6105e86105e33660046149d9565b612465565b6040516102b99190614a65565b610336610603366004614aec565b6124f5565b61061b610616366004614822565b612507565b6040516001600160a01b0390911681526020016102b9565b6102d56106413660046145da565b612531565b6102d56125b3565b6102d561065c3660046148da565b6127fb565b6102d561066f366004614b95565b612820565b6102d5610682366004614bf6565b612a4b565b6102d5610695366004614c61565b612b43565b6102d56106a83660046145da565b612dee565b61061b6106bb366004614822565b612e37565b6103626106ce366004614ca2565b612e47565b6103366106e1366004614cf4565b63f23a6e6160e01b95945050505050565b61061b610700366004614822565b612fcc565b600061071082612fdc565b92915050565b61072160003361234e565b6107465760405162461bcd60e51b815260040161073d90614d58565b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b61077360003361234e565b61078f5760405162461bcd60e51b815260040161073d90614d58565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b600a546040516375fe5f9b60e01b81526001600160a01b0383811660048301526060926000929116906375fe5f9b90602401602060405180830381865afa158015610800573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108249190614d8f565b905060008161ffff166001600160401b03811115610844576108446145f5565b60405190808252806020026020018201604052801561087d57816020015b61086a61452c565b8152602001906001900390816108625790505b50905060005b8261ffff168161ffff16101561099a576001600160a01b038516600081815260066020908152604080832061ffff868116855290835281842054948452600883528184208585528352818420825160c08101845281548152600180830154958201959095526002820154928316938101939093529192606084019162010000900460ff169081111561091757610917614711565b600181111561092857610928614711565b8152600291909101546301000000810460ff166020830152600160201b90046001600160801b031660409182015261ffff851690820181905285519192508291869190811061097957610979614dac565b602002602001018190525050506001816109939190614dd8565b9050610883565b509392505050565b6109aa613001565b6109b2613047565b82600033600a546040516316ab5e5b60e11b81526001600160a01b03808416600483015292935060009290911690632d56bcb690602401602060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a9190614d8f565b90508061ffff168361ffff161115610a545760405162461bcd60e51b815260040161073d90614dfa565b6001600160a01b038216600081815260066020908152604080832061ffff888116855290835281842054948452600883528184208585528352818420825160c08101845281548152600180830154958201959095526002820154928316938101939093529192606084019162010000900460ff1690811115610ad857610ad8614711565b6001811115610ae957610ae9614711565b8152600291909101546301000000810460ff16602080840191909152600160201b9091046001600160801b0316604090920191909152810151909150421015610b745760405162461bcd60e51b815260206004820152601c60248201527f54686973206c696e652068617320616c7265616479206c6f636b656400000000604482015260640161073d565b6020808701356000818152601090925260409091205487359060ff1615610bad5760405162461bcd60e51b815260040161073d90614e27565b42600f5482610bbc9190614e5e565b1015610bda5760405162461bcd60e51b815260040161073d90614e71565b33610be689828c6130a0565b610c025760405162461bcd60e51b815260040161073d90614ea8565b6000610c1160c08c018c614ed3565b905011610c575760405162461bcd60e51b8152602060048201526014602482015273456d70747920656c656d656e747320617272617960601b604482015260640161073d565b6000610c6960a08c0160808d01614f2b565b6001811115610c7a57610c7a614711565b14610cbf5760405162461bcd60e51b81526020600482015260156024820152744d757374206265204552433732312072656369706560581b604482015260640161073d565b600454610cd260808c0160608d01614f57565b60ff1610610d1a5760405162461bcd60e51b8152602060048201526015602482015274496e76616c6964204552433732312072656369706560581b604482015260640161073d565b6020808a01356000908152601082526040808220805460ff191660019081179091556001600160a01b0385168352600790935281208054909190610d5f908490614e5e565b925050819055506000600b60009054906101000a90046001600160a01b03166001600160a01b03166327d1a78b60048d6060016020810190610da19190614f57565b60ff1681548110610db457610db4614dac565b60009182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b0390911660048201528d356024820152600160448201526064016020604051808303816000875af1158015610e14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e389190614f87565b90506000610e478c358361310a565b90506040518060c001604052808281526020018d6020013542610e6a9190614e5e565b815261ffff8f166020820152604001600081526020018d6060016020810190610e939190614f57565b60ff168152600160209182018190526001600160a01b03861660009081526008835260408082206007855281832054835284529081902084518155928401518383015583015160028301805461ffff90921661ffff19831681178255606086015193919262ffffff1916179062010000908490811115610f1557610f15614711565b021790555060808201518160020160036101000a81548160ff021916908360ff16021790555060a08201518160020160046101000a8154816001600160801b0302191690836001600160801b0316021790555090505060076000846001600160a01b03166001600160a01b031681526020019081526020016000205460066000856001600160a01b03166001600160a01b0316815260200190815260200160002060008f61ffff1661ffff16815260200190815260200160002081905550610fec838d8060c00190610fe79190614ed3565b613143565b6004610ffe60808e0160608f01614f57565b60ff168154811061101157611011614dac565b6000918252602090912001546040516340c10f1960e01b8152306004820152602481018390526001600160a01b03909116906340c10f1990604401600060405180830381600087803b15801561106657600080fd5b505af115801561107a573d6000803e3d6000fd5b5050505060006040518060a0016040528060076000876001600160a01b03166001600160a01b031681526020019081526020016000205481526020014281526020018e60200135426110cc9190614e5e565b81526020018f61ffff168152602001856001600160a01b031681525090508c60400160208101906110fd9190614b95565b61ffff167f6c1421fc58abbf61c1d50861e012b55cc1214fda842ffa98edb215f1f8d7b126838f8060c001906111339190614ed3565b856040516111449493929190614fa4565b60405180910390a2505050505050505050505061116060018055565b505050565b6000828152602081905260409020600101546111808161342a565b6111608383613434565b6001600160a01b03811633146111fa5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161073d565b61120482826134b8565b5050565b61121360003361234e565b61122f5760405162461bcd60e51b815260040161073d90614d58565b61123b60046000614562565b565b611245613001565b6020808201356000818152601090925260409091205482359060ff161561127e5760405162461bcd60e51b815260040161073d90614e27565b42600f548261128d9190614e5e565b10156112ab5760405162461bcd60e51b815260040161073d90614e71565b336112b88482888861351d565b6112d45760405162461bcd60e51b815260040161073d90614ea8565b6003546112e76040870160208801614f57565b60ff161061132a5760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642063757272656e637960801b604482015260640161073d565b60208481013560009081526010909152604090819020805460ff19166001179055600a549051637494a85960e11b81526001600160a01b03838116600483015261ffff891660248301529091169063e92950b290604401600060405180830381600087803b15801561139b57600080fd5b505af11580156113af573d6000803e3d6000fd5b505050506113fc60038660200160208101906113cb9190614f57565b60ff16815481106113de576113de614dac565b6000918252602090912001546001600160a01b0316823088356135a5565b61144960036114116040880160208901614f57565b60ff168154811061142457611424614dac565b600091825260209091200154600c546001600160a01b039182169184911688356136dd565b6001600160a01b0381167fbd360903b403600ba3111b7f2d5a041981ee183cc1a5ca82b18ddd7a647e2e1e87873561148760408a0160208b01614f57565b6040805161ffff9094168452602084019290925260ff16908201524260608201526080015b60405180910390a2505050505050565b6114c760003361234e565b6114e35760405162461bcd60e51b815260040161073d90614d58565b61123b613811565b6114f3613001565b6020808201356000818152601090925260409091205482359060ff161561152c5760405162461bcd60e51b815260040161073d90614e27565b42600f548261153b9190614e5e565b10156115595760405162461bcd60e51b815260040161073d90614e71565b33611565848287613863565b6115815760405162461bcd60e51b815260040161073d90614ea8565b6003546115946040870160208801614f57565b60ff16106115d75760405162461bcd60e51b815260206004820152601060248201526f496e76616c69642063757272656e637960801b604482015260640161073d565b843561161a5760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420756e697420707269636560701b604482015260640161073d565b600a546040516375fe5f9b60e01b81526001600160a01b038381166004830152909116906375fe5f9b90602401602060405180830381865afa158015611664573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116889190614d8f565b61ffff168661ffff16106116ae5760405162461bcd60e51b815260040161073d90614dfa565b6001600160a01b038116600081815260066020908152604080832061ffff8b16845282528083205493835260088252808320848452909152902060018101544290811061173d5760405162461bcd60e51b815260206004820152601e60248201527f54686973206c696e652068617320616c726561647920756e6c6f636b65640000604482015260640161073d565b6020808801356000908152601090915260408120805460ff1916600190811790915583015461176e90838b35613903565b6001840183905590506117bc600361178c60408c0160208d01614f57565b60ff168154811061179f5761179f614dac565b6000918252602090912001546001600160a01b03168630846135a5565b61180860036117d160408c0160208d01614f57565b60ff16815481106117e4576117e4614dac565b600091825260209091200154600c546001600160a01b0391821691889116846136dd565b846001600160a01b03167f8192d608c7c25f6a6876f2a087738b3a84578bc4a4d99dc94ac5847e53309f1f8b86848d60200160208101906118499190614f57565b6040805161ffff909516855260208501939093529183015260ff1660608201526080810185905260a00160405180910390a250505050505050505050565b61188f613001565b611897613047565b82600033600a546040516316ab5e5b60e11b81526001600160a01b03808416600483015292935060009290911690632d56bcb690602401602060405180830381865afa1580156118eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190f9190614d8f565b90508061ffff168361ffff1611156119395760405162461bcd60e51b815260040161073d90614dfa565b6001600160a01b038216600081815260066020908152604080832061ffff888116855290835281842054948452600883528184208585528352818420825160c08101845281548152600180830154958201959095526002820154928316938101939093529192606084019162010000900460ff16908111156119bd576119bd614711565b60018111156119ce576119ce614711565b8152600291909101546301000000810460ff16602080840191909152600160201b9091046001600160801b0316604090920191909152810151909150421015611a595760405162461bcd60e51b815260206004820152601c60248201527f54686973206c696e652068617320616c7265616479206c6f636b656400000000604482015260640161073d565b6020808701356000818152601090925260409091205487359060ff1615611a925760405162461bcd60e51b815260040161073d90614e27565b42600f5482611aa19190614e5e565b1015611abf5760405162461bcd60e51b815260040161073d90614e71565b33611acb89828c6130a0565b611ae75760405162461bcd60e51b815260040161073d90614ea8565b600554611afa60808c0160608d01614f57565b60ff1610611b435760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420455243313135352072656369706560501b604482015260640161073d565b6000611b5260c08c018c614ed3565b905011611b985760405162461bcd60e51b8152602060048201526014602482015273456d70747920656c656d656e747320617272617960601b604482015260640161073d565b6001611baa60a08c0160808d01614f2b565b6001811115611bbb57611bbb614711565b14611c015760405162461bcd60e51b81526020600482015260166024820152754d75737420626520455243313135352072656369706560501b604482015260640161073d565b6000611c1360c08c0160a08d01615071565b6001600160801b031611611c695760405162461bcd60e51b815260206004820152601f60248201527f5175616e74697479206d7573742062652067726561746572207468616e203000604482015260640161073d565b6020808a01356000908152601082526040808220805460ff191660019081179091556001600160a01b0385168352600790935281208054909190611cae908490614e5e565b90915550506001600160a01b03811660009081526007602090815260408220549190611cdd908d013542614e5e565b90506040518060c001604052808d6000013581526020018281526020018e61ffff168152602001600180811115611d1657611d16614711565b81526020018d6060016020810190611d2e9190614f57565b60ff1681526020018d60a0016020810190611d499190615071565b6001600160801b031690526001600160a01b038416600090815260086020908152604080832086845282529182902083518155908301516001808301919091559183015160028201805461ffff90921661ffff1983168117825560608601519394919262ffffff1916179062010000908490811115611dca57611dca614711565b021790555060808201518160020160036101000a81548160ff021916908360ff16021790555060a08201518160020160046101000a8154816001600160801b0302191690836001600160801b031602179055509050508160066000856001600160a01b03166001600160a01b0316815260200190815260200160002060008f61ffff1661ffff16815260200190815260200160002081905550611e77838d8060c00190610fe79190614ed3565b611ea8611e8a60808e0160608f01614f57565b8d600001358e60a0016020810190611ea29190615071565b30613963565b60006040518060a0016040528060076000876001600160a01b03166001600160a01b031681526020019081526020016000205481526020014281526020018381526020018f61ffff168152602001856001600160a01b031681525090508c6040016020810190611f189190614b95565b61ffff167f6c1421fc58abbf61c1d50861e012b55cc1214fda842ffa98edb215f1f8d7b1268e600001358f8060c001906111339190614ed3565b611f5d60003361234e565b611f795760405162461bcd60e51b815260040161073d90614d58565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260076020908152604080832054600990925282205460609290611fce906001614e5e565b90506000815b838111612024576001600160a01b0386166000908152600860209081526040808320848452909152902054156120125761200f600183614e5e565b91505b61201d600182614e5e565b9050611fd4565b506000816001600160401b0381111561203f5761203f6145f5565b60405190808252806020026020018201604052801561207857816020015b61206561452c565b81526020019060019003908161205d5790505b5090506000835b85811161217d576001600160a01b03881660009081526008602090815260408083208484528252808320815160c0810183528154815260018083015494820194909452600282015461ffff81169382019390935292909160608401916201000090910460ff16908111156120f5576120f5614711565b600181111561210657612106614711565b8152600291909101546301000000810460ff166020830152600160201b90046001600160801b031660409091015280519091501561216a578084848151811061215157612151614dac565b6020908102919091010152612167600184614e5e565b92505b50612176600182614e5e565b905061207f565b50909695505050505050565b61219460003361234e565b6121b05760405162461bcd60e51b815260040161073d90614d58565b6121b981613a90565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b0392909216919091179055565b61221660003361234e565b6122325760405162461bcd60e51b815260040161073d90614d58565b61123b613b3d565b61224560003361234e565b6122615760405162461bcd60e51b815260040161073d90614d58565b61123b60056000614562565b61227860003361234e565b6122945760405162461bcd60e51b815260040161073d90614d58565b61229d81613a90565b600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0392909216919091179055565b6122fa60003361234e565b6123165760405162461bcd60e51b815260040161073d90614d58565b600f55565b61232660003361234e565b6123425760405162461bcd60e51b815260040161073d90614d58565b61123b60036000614562565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b61238260003361234e565b61239e5760405162461bcd60e51b815260040161073d90614d58565b6123c87f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c82613b7a565b50565b6123d660003361234e565b6123f25760405162461bcd60e51b815260040161073d90614d58565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b61241f60003361234e565b61243b5760405162461bcd60e51b815260040161073d90614d58565b6123c87f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c826127fb565b6060600061247e61247960c0850185614ed3565b613b84565b905082356124926060850160408601614b95565b6124a26080860160608701614f57565b6124b260a0870160808801614f2b565b60208701356124c760c0890160a08a01615071565b866040516020016124de97969594939291906150b3565b604051602081830303815290604052915050919050565b63bc197c8160e01b5b95945050505050565b6005818154811061251757600080fd5b6000918252602090912001546001600160a01b0316905081565b61253c60003361234e565b6125585760405162461bcd60e51b815260040161073d90614d58565b61256181613a90565b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b0392909216919091179055565b6125bb613047565b3360008181526007602090815260408083205460099092528220549091906125e4906001614e5e565b90504260006125f3838561512c565b6125fe906001614e5e565b6001600160401b03811115612615576126156145f5565b60405190808252806020026020018201604052801561263e578160200160208202803683370190505b5090506000835b85811161279d576001600160a01b03871660009081526008602090815260408083208484528252808320815160c0810183528154815260018083015494820194909452600282015461ffff81169382019390935292909160608401916201000090910460ff16908111156126bb576126bb614711565b60018111156126cc576126cc614711565b8152600291909101546301000000810460ff166020830152600160201b90046001600160801b0316604090910152805190915015801590612711575084816020015111155b1561278a578184848151811061272957612729614dac565b602090810291909101015261273f600184614e5e565b6001600160a01b03891660009081526008602090815260408083208684529091528120818155600181019190915560020180546001600160a01b0319169055925061278a8882613c0d565b50612796600182614e5e565b9050612645565b506127a9868587613d9e565b856001600160a01b03167f7407f667c2081f3de631e8421aebe0d3fae0ded8ba273a388022529c13fe7c4083856040516127e492919061513f565b60405180910390a250505050505061123b60018055565b6000828152602081905260409020600101546128168161342a565b61116083836134b8565b33600081815260066020908152604080832061ffff868116855290835281842054858552600884528285208186528452828520835160c0810185528154815260018083015496820196909652600282015493841694810194909452429591949193929091606084019162010000900460ff16908111156128a2576128a2614711565b60018111156128b3576128b3614711565b8152600291909101546301000000810460ff166020830152600160201b90046001600160801b031660409091015280519091506000036129355760405162461bcd60e51b815260206004820152601c60248201527f446f6e2774206861766520616e797468696e6720746f20636c61696d00000000604482015260640161073d565b82816020015111156129845760405162461bcd60e51b815260206004820152601860248201527711d95b995c985d1a5bdb881b9bdd0818dbdb5c1b195d195960421b604482015260640161073d565b6040805160018082528183019092526000916020808301908036833701905050905082816000815181106129ba576129ba614dac565b6020908102919091018101919091526001600160a01b0386166000908152600882526040808220868352909252908120818155600181019190915560020180546001600160a01b0319169055612a108583613c0d565b846001600160a01b03167f7407f667c2081f3de631e8421aebe0d3fae0ded8ba273a388022529c13fe7c4082866040516114ac92919061513f565b612a5660003361234e565b612a725760405162461bcd60e51b815260040161073d90614d58565b828114612ac15760405162461bcd60e51b815260206004820152601a60248201527f54776f20617272617973206c656e677468206d69736d61746368000000000000604482015260640161073d565b60005b83811015612b3c57828282818110612ade57612ade614dac565b9050602002013560096000878785818110612afb57612afb614dac565b9050602002016020810190612b1091906145da565b6001600160a01b03168152602081019190915260400160002055612b35600182614e5e565b9050612ac4565b5050505050565b612b4b613047565b80612b8c5760405162461bcd60e51b8152602060048201526011602482015270456d70747920636c61696d20617272617960781b604482015260640161073d565b334260005b83811015612d9d576001600160a01b038316600090815260086020526040812081878785818110612bc457612bc4614dac565b9050602002013581526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a900461ffff1661ffff1661ffff1681526020016002820160029054906101000a900460ff166001811115612c3c57612c3c614711565b6001811115612c4d57612c4d614711565b8152600291909101546301000000810460ff166020830152600160201b90046001600160801b03166040909101528051909150600003612ccf5760405162461bcd60e51b815260206004820152601c60248201527f446f6e2774206861766520616e797468696e6720746f20636c61696d00000000604482015260640161073d565b8281602001511115612d1e5760405162461bcd60e51b815260206004820152601860248201527711d95b995c985d1a5bdb881b9bdd0818dbdb5c1b195d195960421b604482015260640161073d565b6001600160a01b038416600090815260086020526040812090878785818110612d4957612d49614dac565b602090810292909201358352508101919091526040016000908120818155600181019190915560020180546001600160a01b0319169055612d8a8482613c0d565b50612d96600182614e5e565b9050612b91565b50816001600160a01b03167f7407f667c2081f3de631e8421aebe0d3fae0ded8ba273a388022529c13fe7c40858584604051612ddb93929190615187565b60405180910390a2505061120460018055565b612df960003361234e565b612e155760405162461bcd60e51b815260040161073d90614d58565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6004818154811061251757600080fd5b60606000826001600160401b03811115612e6357612e636145f5565b604051908082528060200260200182016040528015612e9c57816020015b612e8961452c565b815260200190600190039081612e815790505b50905060005b83811015612fc3576001600160a01b038616600090815260086020526040812081878785818110612ed557612ed5614dac565b9050602002013581526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a900461ffff1661ffff1661ffff1681526020016002820160029054906101000a900460ff166001811115612f4d57612f4d614711565b6001811115612f5e57612f5e614711565b8152600291909101546301000000810460ff166020830152600160201b90046001600160801b031660409091015283519091508190849084908110612fa557612fa5614dac565b602090810291909101015250612fbc600182614e5e565b9050612ea2565b50949350505050565b6003818154811061251757600080fd5b60006001600160e01b03198216630271189760e51b1480610710575061071082613e0b565b60025460ff161561123b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640161073d565b6002600154036130995760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161073d565b6002600155565b6000806130ac83612465565b905060008560200135858388600001356040516020016130cf94939291906151c5565b604051602081830303815290604052805190602001209050613100818780604001906130fb919061520b565b613e40565b9695505050505050565b60008061311683613eac565b905060006001600160801b03841661312f83600a615335565b613139908761534a565b6124fe9190614e5e565b60005b8181101561342457600083838381811061316257613162614dac565b9050608002018036038101906131789190615361565b905060008160200151600181111561319257613192614711565b03613232576004816040015160ff16815481106131b1576131b1614dac565b600091825260209091200154600d548251604051632142170760e11b81526001600160a01b038981166004830152928316602482015260448101919091529116906342842e0e90606401600060405180830381600087803b15801561321557600080fd5b505af1158015613229573d6000803e3d6000fd5b50505050613411565b600554604082015160ff161061328a5760405162461bcd60e51b815260206004820152601860248201527f496e76616c6964204552433131353520636f6e74726163740000000000000000604482015260640161073d565b600081606001516001600160801b0316116132e75760405162461bcd60e51b815260206004820181905260248201527f5175616e74697479206f662045524331313535206974656d20696e76616c6964604482015260640161073d565b60006005826040015160ff168154811061330357613303614dac565b600091825260208220015460408401516001600160a01b03909116925060ff16900361339e57600d5482516060840151604051637921219560e11b81526001600160a01b038086169463f242432a94613367948d94929093169290916004016153d8565b600060405180830381600087803b15801561338157600080fd5b505af1158015613395573d6000803e3d6000fd5b5050505061340f565b600d5482516060840151604051637921219560e11b81526001600160a01b038086169463f242432a946133dc948d94929093169290916004016153d8565b600060405180830381600087803b1580156133f657600080fd5b505af115801561340a573d6000803e3d6000fd5b505050505b505b5061341d600182614e5e565b9050613146565b50505050565b6123c88133613f00565b61343e828261234e565b611204576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556134743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6134c2828261234e565b15611204576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008085602001358585856000013586602001602081019061353f9190614f57565b6040516130cf9594939291908c359060200195865260609490941b6bffffffffffffffffffffffff1916602086015260f09290921b6001600160f01b0319166034850152603684015260f81b6001600160f81b0319166056830152605782015260770190565b6040516001600160a01b0384811660248301528381166044830152600091829187169060640160408051601f198184030181529181526020820180516001600160e01b0316636eb1769f60e11b179052516136009190615423565b6000604051808303816000865af19150503d806000811461363d576040519150601f19603f3d011682016040523d82523d6000602084013e613642565b606091505b509150915081801561366757508281806020019051810190613664919061543f565b10155b6136ca5760405162461bcd60e51b815260206004820152602e60248201527f45786368616e67652063757272656e637920616c6c6f77616e6365206f66207560448201526d73657220697320746f6f206c6f7760901b606482015260840161073d565b6136d5868685613f59565b505050505050565b6040516001600160a01b038481166024830152838116604483015260648201839052600091829187169060840160408051601f198184030181529181526020820180516001600160e01b03166323b872dd60e01b1790525161373f9190615423565b6000604051808303816000865af19150503d806000811461377c576040519150601f19603f3d011682016040523d82523d6000602084013e613781565b606091505b50915091508180156137ab5750805115806137ab5750808060200190518101906137ab9190615458565b6136d55760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a207472604482015270185b9cd9995c919c9bdb4819985a5b1959607a1b606482015260840161073d565b613819614074565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60008084602001358484600001358560200160208101906138849190614f57565b6040516138d794939291908a359060200194855260609390931b6bffffffffffffffffffffffff19166020850152603484019190915260f81b6001600160f81b0319166054830152605582015260750190565b6040516020818303038152906040528051906020012090506124fe818680604001906130fb919061520b565b600080613910848661512c565b9050600061391f603c83615490565b61392a906001614e5e565b9050613937603c836154a4565b60000361394c57613949603c83615490565b90505b6000613958858361534a565b979650505050505050565b600060058560ff168154811061397b5761397b614dac565b60009182526020822001546001600160a01b0316915060ff86169003613a185760405163b8b31cc360e01b8152600481018590526001600160801b03841660248201526001600160a01b0383811660448301526000606483015282169063b8b31cc390608401600060405180830381600087803b1580156139fb57600080fd5b505af1158015613a0f573d6000803e3d6000fd5b50505050612b3c565b604051631a5a942d60e21b81526001600160a01b038381166004830152602482018690526001600160801b038516604483015282169063696a50b490606401600060405180830381600087803b158015613a7157600080fd5b505af1158015613a85573d6000803e3d6000fd5b505050505050505050565b6001600160a01b038116613ae65760405162461bcd60e51b815260206004820152601f60248201527f416464726573732063616e206e6f74206265207a65726f206164647265737300604482015260640161073d565b6001600160a01b0381163b6123c85760405162461bcd60e51b815260206004820152601a60248201527f41646472657373206d757374206265206120636f6e7472616374000000000000604482015260640161073d565b613b45613001565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586138463390565b6112048282613434565b60608060005b8381101561099a576000858583818110613ba657613ba6614dac565b905060800201803603810190613bbc9190615361565b9050828160000151826020015183604001518460600151604051602001613be79594939291906154b8565b604051602081830303815290604052925050600181613c069190614e5e565b9050613b8a565b600081606001516001811115613c2557613c25614711565b03613cb7576004816080015160ff1681548110613c4457613c44614dac565b6000918252602090912001548151604051632142170760e11b81523060048201526001600160a01b03858116602483015260448201929092529116906342842e0e90606401600060405180830381600087803b158015613ca357600080fd5b505af11580156136d5573d6000803e3d6000fd5b60006005826080015160ff1681548110613cd357613cd3614dac565b600091825260208220015460808401516001600160a01b03909116925060ff169003613d6757815160a0830151604051637921219560e11b81526001600160a01b0384169263f242432a92613d30923092899290916004016153d8565b600060405180830381600087803b158015613d4a57600080fd5b505af1158015613d5e573d6000803e3d6000fd5b50505050505050565b815160a0830151604051637921219560e11b81526001600160a01b0384169263f242432a92613d30923092899290916004016153d8565b815b818111613424576001600160a01b038416600090815260086020908152604080832084845290915290205415613df957613ddb60018261512c565b6001600160a01b038516600090815260096020526040902055613424565b613e04600182614e5e565b9050613da0565b60006001600160e01b03198216637965db0b60e01b148061071057506301ffc9a760e01b6001600160e01b0319831614610710565b600e54604080516020601f85018190048102820181019092528381526000926001600160a01b031691613e9a91908690869081908401838280828437600092019190915250613e9492508991506140bd9050565b90614110565b6001600160a01b031614949350505050565b6000816001600160801b0316600003613ec757506001919050565b8160005b6001600160801b03821615613ef957613ee5600182615518565b9050613ef2600a83615538565b9150613ecb565b9392505050565b613f0a828261234e565b61120457613f178161412c565b613f2283602061413e565b604051602001613f3392919061555e565b60408051601f198184030181529082905262461bcd60e51b825261073d91600401614a65565b6040516001600160a01b038381166024830152600091829186169060440160408051601f198184030181529181526020820180516001600160e01b03166370a0823160e01b17905251613fac9190615423565b6000604051808303816000865af19150503d8060008114613fe9576040519150601f19603f3d011682016040523d82523d6000602084013e613fee565b606091505b509150915081801561401357508281806020019051810190614010919061543f565b10155b612b3c5760405162461bcd60e51b815260206004820152602c60248201527f45786368616e67652063757272656e63792062616c616e6365206f662075736560448201526b7220697320746f6f206c6f7760a01b606482015260840161073d565b60025460ff1661123b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015260640161073d565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b600080600061411f85856142d9565b9150915061099a8161431e565b60606107106001600160a01b03831660145b6060600061414d83600261534a565b614158906002614e5e565b6001600160401b0381111561416f5761416f6145f5565b6040519080825280601f01601f191660200182016040528015614199576020820181803683370190505b509050600360fc1b816000815181106141b4576141b4614dac565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106141e3576141e3614dac565b60200101906001600160f81b031916908160001a905350600061420784600261534a565b614212906001614e5e565b90505b600181111561428a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061424657614246614dac565b1a60f81b82828151811061425c5761425c614dac565b60200101906001600160f81b031916908160001a90535060049490941c93614283816155d3565b9050614215565b508315613ef95760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161073d565b600080825160410361430f5760208301516040840151606085015160001a61430387828585614468565b94509450505050614317565b506000905060025b9250929050565b600081600481111561433257614332614711565b0361433a5750565b600181600481111561434e5761434e614711565b0361439b5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161073d565b60028160048111156143af576143af614711565b036143fc5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161073d565b600381600481111561441057614410614711565b036123c85760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161073d565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561449f5750600090506003614523565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156144f3573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661451c57600060019250925050614523565b9150600090505b94509492505050565b6040805160c081018252600080825260208201819052918101829052906060820190815260006020820181905260409091015290565b50805460008255906000526020600020908101906123c891905b80821115614590576000815560010161457c565b5090565b6000602082840312156145a657600080fd5b81356001600160e01b031981168114613ef957600080fd5b80356001600160a01b03811681146145d557600080fd5b919050565b6000602082840312156145ec57600080fd5b613ef9826145be565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614633576146336145f5565b604052919050565b600082601f83011261464c57600080fd5b81356001600160401b03811115614665576146656145f5565b614678601f8201601f191660200161460b565b81815284602083860101111561468d57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156146c057600080fd5b6146c9856145be565b93506146d7602086016145be565b92506040850135915060608501356001600160401b038111156146f957600080fd5b6147058782880161463b565b91505092959194509250565b634e487b7160e01b600052602160045260246000fd5b6002811061474557634e487b7160e01b600052602160045260246000fd5b9052565b602080825282518282018190526000919060409081850190868401855b828110156147ce57815180518552868101518786015261ffff86820151168686015260608082015161479a82880182614727565b505060808181015160ff169086015260a0908101516001600160801b03169085015260c09093019290850190600101614766565b5091979650505050505050565b61ffff811681146123c857600080fd5b600080604083850312156147fe57600080fd5b614807836145be565b91506020830135614817816147db565b809150509250929050565b60006020828403121561483457600080fd5b5035919050565b600060e0828403121561484d57600080fd5b50919050565b60006060828403121561484d57600080fd5b60008060006060848603121561487a57600080fd5b8335614885816147db565b925060208401356001600160401b03808211156148a157600080fd5b6148ad8783880161483b565b935060408601359150808211156148c357600080fd5b506148d086828701614853565b9150509250925092565b600080604083850312156148ed57600080fd5b823591506148fd602084016145be565b90509250929050565b6000806000838503608081121561491c57600080fd5b8435614927816147db565b93506040601f198201121561493b57600080fd5b5060208401915060608401356001600160401b0381111561495b57600080fd5b6148d086828701614853565b6000806040838503121561497a57600080fd5b614983836145be565b946020939093013593505050565b8681526020810186905261ffff8516604082015260c081016149b66060830186614727565b60ff841660808301526001600160801b03831660a0830152979650505050505050565b6000602082840312156149eb57600080fd5b81356001600160401b03811115614a0157600080fd5b614a0d8482850161483b565b949350505050565b60005b83811015614a30578181015183820152602001614a18565b50506000910152565b60008151808452614a51816020860160208601614a15565b601f01601f19169290920160200192915050565b602081526000613ef96020830184614a39565b600082601f830112614a8957600080fd5b813560206001600160401b03821115614aa457614aa46145f5565b8160051b614ab382820161460b565b9283528481018201928281019087851115614acd57600080fd5b83870192505b8483101561395857823582529183019190830190614ad3565b600080600080600060a08688031215614b0457600080fd5b614b0d866145be565b9450614b1b602087016145be565b935060408601356001600160401b0380821115614b3757600080fd5b614b4389838a01614a78565b94506060880135915080821115614b5957600080fd5b614b6589838a01614a78565b93506080880135915080821115614b7b57600080fd5b50614b888882890161463b565b9150509295509295909350565b600060208284031215614ba757600080fd5b8135613ef9816147db565b60008083601f840112614bc457600080fd5b5081356001600160401b03811115614bdb57600080fd5b6020830191508360208260051b850101111561431757600080fd5b60008060008060408587031215614c0c57600080fd5b84356001600160401b0380821115614c2357600080fd5b614c2f88838901614bb2565b90965094506020870135915080821115614c4857600080fd5b50614c5587828801614bb2565b95989497509550505050565b60008060208385031215614c7457600080fd5b82356001600160401b03811115614c8a57600080fd5b614c9685828601614bb2565b90969095509350505050565b600080600060408486031215614cb757600080fd5b614cc0846145be565b925060208401356001600160401b03811115614cdb57600080fd5b614ce786828701614bb2565b9497909650939450505050565b600080600080600060a08688031215614d0c57600080fd5b614d15866145be565b9450614d23602087016145be565b9350604086013592506060860135915060808601356001600160401b03811115614d4c57600080fd5b614b888882890161463b565b60208082526017908201527f43616c6c6572206973206e6f74207468652061646d696e000000000000000000604082015260600190565b600060208284031215614da157600080fd5b8151613ef9816147db565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b61ffff818116838216019080821115614df357614df3614dc2565b5092915050565b60208082526013908201527224b73b30b634b2103634b73290373ab6b132b960691b604082015260600190565b6020808252601a908201527f5369676e61747572652068617320616c72656164792075736564000000000000604082015260600190565b8082018082111561071057610710614dc2565b6020808252601d908201527f5369676e61747572652068617320616c72656164792065787069726564000000604082015260600190565b602080825260119082015270496e76616c6964207369676e617475726560781b604082015260600190565b6000808335601e19843603018112614eea57600080fd5b8301803591506001600160401b03821115614f0457600080fd5b6020019150600781901b360382131561431757600080fd5b8035600281106145d557600080fd5b600060208284031215614f3d57600080fd5b613ef982614f1c565b803560ff811681146145d557600080fd5b600060208284031215614f6957600080fd5b613ef982614f46565b6001600160801b03811681146123c857600080fd5b600060208284031215614f9957600080fd5b8151613ef981614f72565b84815260e0602080830182905290820184905260009085906101008401835b878110156150295783358252614fda838501614f1c565b614fe684840182614727565b50604060ff614ff6828701614f46565b169083015260608481013561500a81614f72565b6001600160801b03169083015260809384019390910190600101614fc3565b5092506124fe915050604083018480518252602080820151908301526040808201519083015260608082015161ffff16908301526080908101516001600160a01b0316910152565b60006020828403121561508357600080fd5b8135613ef981614f72565b600281106150ac57634e487b7160e01b600052602160045260246000fd5b60f81b9052565b87815260f087901b6001600160f01b031916602082015260f886901b6001600160f81b03191660228201526150eb602382018661508e565b8360248201526001600160801b03198360801b16604482015260008251615119816054850160208701614a15565b9190910160540198975050505050505050565b8181038181111561071057610710614dc2565b604080825283519082018190526000906020906060840190828701845b828110156151785781518452928401929084019060010161515c565b50505092019290925292915050565b6040808252810183905260006001600160fb1b038411156151a757600080fd5b8360051b808660608501376020830193909352500160600192915050565b8481526bffffffffffffffffffffffff198460601b166020820152600083516151f5816034850160208801614a15565b6034920191820192909252605401949350505050565b6000808335601e1984360301811261522257600080fd5b8301803591506001600160401b0382111561523c57600080fd5b60200191503681900382131561431757600080fd5b600181815b8085111561528c57816000190482111561527257615272614dc2565b8085161561527f57918102915b93841c9390800290615256565b509250929050565b6000826152a357506001610710565b816152b057506000610710565b81600181146152c657600281146152d0576152ec565b6001915050610710565b60ff8411156152e1576152e1614dc2565b50506001821b610710565b5060208310610133831016604e8410600b841016171561530f575081810a610710565b6153198383615251565b806000190482111561532d5761532d614dc2565b029392505050565b6000613ef96001600160801b03841683615294565b808202811582820484141761071057610710614dc2565b60006080828403121561537357600080fd5b604051608081018181106001600160401b0382111715615395576153956145f5565b604052823581526153a860208401614f1c565b60208201526153b960408401614f46565b604082015260608301356153cc81614f72565b60608201529392505050565b6001600160a01b03948516815292909316602083015260408201526001600160801b03909116606082015260a06080820181905260029082015261060f60f31b60c082015260e00190565b60008251615435818460208701614a15565b9190910192915050565b60006020828403121561545157600080fd5b5051919050565b60006020828403121561546a57600080fd5b81518015158114613ef957600080fd5b634e487b7160e01b600052601260045260246000fd5b60008261549f5761549f61547a565b500490565b6000826154b3576154b361547a565b500690565b600086516154ca818460208b01614a15565b82018681526154dc602082018761508e565b60f89490941b6001600160f81b0319166021850152505060801b6fffffffffffffffffffffffffffffffff191660228201526032019392505050565b6001600160801b03818116838216019080821115614df357614df3614dc2565b60006001600160801b03808416806155525761555261547a565b92169190910492915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615596816017850160208801614a15565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516155c7816028840160208801614a15565b01602801949350505050565b6000816155e2576155e2614dc2565b50600019019056fea2646970667358221220cc83bfd97c3452819d58dd1199cf88fbf939cf839ee66a4a0d83c4dcead8844b64736f6c63430008110033000000000000000000000000503de002f25a9f3cbc855c22202c4a1665e4244f000000000000000000000000d86021422484fb9ad2b660f959dddd64672c019f0000000000000000000000002744ae359c4ebac49b6696becefdb39f738aaa3e0000000000000000000000005b00f8c66a9128549771a03abcfe3fd124abffdc00000000000000000000000062d0e5e193854a4943dec1a48ffc3d6744ab5f54000000000000000000000000000000000000000000000000000000000000012c