1.3k txs
40.5k calls
constructor
constructor(address treasury_, address[] stables_, address pyth_, bytes32 pythNativePriceFeedId_, address[] tokens, bytes32[] pythIds)
functions
balanceOf
viewfunction balanceOf(uint256 milestone_, address user_) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
defaultPythThreshold
viewfunction defaultPythThreshold() view returns (uint256)
getAllowedToken
viewfunction getAllowedToken(address token_) view returns (tuple)
getCurrentMilestoneIndex
viewfunction getCurrentMilestoneIndex() view returns (uint256)
getCurrentMilestonePrice
viewfunction getCurrentMilestonePrice(uint8 option_) view returns (uint256)
getDepositedByToken
viewfunction getDepositedByToken(address asset_) view returns (uint256)
getLimit
viewfunction getLimit() view returns (uint256)
getMaxDepositAmount
viewfunction getMaxDepositAmount() view returns (uint256)
getMilestoneAmount
viewfunction getMilestoneAmount() view returns (uint256)
getMilestoneInfo
viewfunction getMilestoneInfo(uint256 index_) view returns (tuple)
getMinimalDepositAmount
viewfunction getMinimalDepositAmount() view returns (uint256)
getRepresentative
viewfunction getRepresentative(address user_, address rep_) view returns (address)
getRepresentativeRate
viewfunction getRepresentativeRate(address rep_) view returns (uint256, uint256)
getRepresentativeRates
viewfunction getRepresentativeRates() view returns (uint256, uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTotalDepositAmount
viewfunction getTotalDepositAmount() view returns (uint256)
getTotalSoldTokens
viewfunction getTotalSoldTokens() view returns (uint256)
getTreasury
viewfunction getTreasury() view returns (address)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isSaleActive
viewfunction isSaleActive() view returns (bool)
isSaleInactive
viewfunction isSaleInactive() view returns (bool)
isStableSupported
viewfunction isStableSupported(address asset_) view returns (bool)
isVerified
viewfunction isVerified(address user_) view returns (bool)
MANAGER_ROLE
viewfunction MANAGER_ROLE() view returns (bytes32)
maxDepositLimit
viewfunction maxDepositLimit(address user_) view returns (uint256)
MULTIPLIER
viewfunction MULTIPLIER() view returns (uint256)
paused
viewfunction paused() view returns (bool)
precision
viewfunction precision() view returns (uint256)
regularDepositLimit
viewfunction regularDepositLimit(address user_) view returns (uint256)
representativeBalanceOf
viewfunction representativeBalanceOf(address asset_, address user_) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
VERIFIED_ROLE
viewfunction VERIFIED_ROLE() view returns (bytes32)
claimRepresentativeRewards
nonpayablefunction claimRepresentativeRewards(address[] assets_)
close
nonpayablefunction close()
depositCollateral
nonpayablefunction depositCollateral(address asset_, uint256 amount_, uint8 option_, address representative_)
depositCollateralFor
nonpayablefunction depositCollateralFor(address asset_, uint256 amount_, uint8 option_, address receiver_, address representative_)
depositNative
payablefunction depositNative(uint8 option_, address representative_) payable
depositNativeFor
payablefunction depositNativeFor(uint8 option_, address receiver_, address representative_) payable
depositToken
nonpayablefunction depositToken(address asset_, uint256 amount_, uint8 option_, address representative_)
depositTokenFor
nonpayablefunction depositTokenFor(address asset_, uint256 amount_, uint8 option_, address receiver_, address representative_)
disableRepresentative
nonpayablefunction disableRepresentative(address rep_)
enableRepresentative
nonpayablefunction enableRepresentative(address rep_)
finishMilestone
nonpayablefunction finishMilestone(uint256 index_)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
open
nonpayablefunction open()
pause
nonpayablefunction pause()
recoverErc20
nonpayablefunction recoverErc20(address asset_, uint256 amount_)
recoverNative
nonpayablefunction recoverNative()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setLimit
nonpayablefunction setLimit(uint256 amount_)
setMaxDepositAmount
nonpayablefunction setMaxDepositAmount(uint256 amount_)
setMilestone
nonpayablefunction setMilestone(uint256 sPrice_, uint256 lPrice_, uint256 supply_)
setMinDepositAmount
nonpayablefunction setMinDepositAmount(uint256 amount_)
setNativePythThreshold
nonpayablefunction setNativePythThreshold(uint256 pythNativeThreshold_)
setRepresentativeRate
nonpayablefunction setRepresentativeRate(uint256 firstRepRate_, uint256 secondRepRate_)
setTreasury
nonpayablefunction setTreasury(address treasury_)
setupRepresentatives
nonpayablefunction setupRepresentatives(address[] reps_, uint256[] firstRepRates_, uint256[] secondRepRates_)
setVerified
nonpayablefunction setVerified(address user_, bool value_)
setVerifiedBatch
nonpayablefunction setVerifiedBatch(address[] users_, bool[] values_)
start
nonpayablefunction start(uint256 index_)
toggleAllowedTokens
nonpayablefunction toggleAllowedTokens(address[] tokens_, bytes32[] pythIds_, uint256[] thresholds_, bool[] statuses_)
unpause
nonpayablefunction unpause()
updateMilestonePrice
nonpayablefunction updateMilestonePrice(uint256 index_, uint256 sPrice_, uint256 lPrice_)
updateMilestoneSupply
nonpayablefunction updateMilestoneSupply(uint256 index_, uint256 supply_)
events
Claimed
event Claimed(address indexed Representative, address indexed asset, uint256 amount)
DepositedNative
event DepositedNative(address indexed receiver, address indexed representative, uint256 size, uint8 indexed option, uint256 tokensReleased, uint256 saleMilestone)
DepositedToken
event DepositedToken(address indexed receiver, address indexed asset, address indexed representative, uint256 size, uint8 option, uint256 tokensReleased, uint256 saleMilestone)
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
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
FailedInnerCall
error FailedInnerCall()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x608060405234620004685762004c71803803806200001d816200046d565b92833981019060c0818303126200046857620000398162000493565b60208201519091906001600160401b0381116200046857836200005e918301620004c0565b926200006d6040830162000493565b90606083015193608084015160018060401b03811162000468578262000095918601620004c0565b60a085015190946001600160401b0382116200046857019180601f8401121562000468578251620000d0620000ca82620004a8565b6200046d565b9360208086848152019260051b8201019283116200046857602001905b828210620004575750506001600055506002805460ff1916905560326009819055600a556001600160a01b0316801562000412576001600160a01b03831615620003c15783518251036200036e57600b80546001600160a01b03191691909117905560005b855181101562000264576001600160a01b036200017082886200054c565b5116156200020f5760408051919082018083116001600160401b0390911117620001f957816040620001f393016040526001815260016020820160008152818060a01b03620001c0858c6200054c565b51166000526010602052620001e9604060002093511515849060ff801983541691151516179055565b5191015562000526565b62000152565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e53746f72653a2063616e7420736574207a65726f206173736574206044820152666164647265737360c81b6064820152608490fd5b508360005b845181101562000321576200027f81846200054c565b516040519091906001600160401b036080820190811190821117620001f95760036200031b9360808301604052600183526020830190815260408301600081526060840191617080835260018060a01b03620002dc878d6200054c565b5116600052601760205262000305604060002095511515869060ff801983541691151516179055565b5160018501555160028401555191015562000526565b62000269565b50600480546001600160a01b0319166001600160a01b038516179055617080600555600655620003513362000577565b506200035d33620005f8565b506040516145b590816200069c8239f35b60405162461bcd60e51b815260206004820152602560248201527f546f6b656e53746f72653a20617272617973206c656e67746873206e6f7420656044820152647175616c7360d81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f546f6b656e53746f72653a2063616e7420736574207a65726f2061646472657360448201526273657360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152601d60248201527f546f6b656e53746f72653a207a65726f2062616e6b20616464726573730000006044820152606490fd5b8151815260209182019101620000ed565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620001f957604052565b51906001600160a01b03821682036200046857565b6001600160401b038111620001f95760051b60200190565b9080601f830112156200046857815190602091620004e2620000ca82620004a8565b93838086848152019260051b82010192831162000468578301905b8282106200050c575050505090565b8380916200051a8462000493565b815201910190620004fd565b6000198114620005365760010190565b634e487b7160e01b600052601160045260246000fd5b8051821015620005615760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b031660008181527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081205490919060ff16620005f45781805260016020526040822081835260205260408220600160ff19825416179055339160008051602062004c518339815191528180a4600190565b5090565b6001600160a01b031660008181527ffdb122eb892c6b3193f8499f050265ce5458caab5f6480270d8972921f24f42960205260408120549091907f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b089060ff16620006965780835260016020526040832082845260205260408320600160ff1982541617905560008051602062004c51833981519152339380a4600190565b50509056fe6080604081815260049182361015610022575b505050361561002057600080fd5b005b600092833560e01c918262ff3b9214612df05750816301ffc9a714612d9a578163059f8b1614612d775781630790241914612d3b5781630af6e01a14612c9a578163248a9ca314612c7057816327ea6f2b14612bea57816329bf4077146129b05781632a80cda31461296c5781632f2ff15d146129425781632f362b811461270557816336568abe146126bf5781633656eec21461267f5781633b19e84a146126575781633c9b97fc146126385781633edd92621461255e5781633f4ba83a146124f4578163403cca7a146122a557816343d726d614612212578163564566a8146121f55781635726a356146121d6578163590d889a1461219857816359b7aa351461215d57816359be5e451461213e5781635a54db86146121145781635c975abb146120f057816361fd6545146120d35781636a30c1e9146120ae5781636eeb6dac1461207e578163738a8ce61461204657816377fe1f2414611d885781638456cb5914611d2d57816385b7583d14611ce55781638886789314611bf95781638d8e1ad714611bd35781638ed8409e14611bad57816391d1485414611b6757816395805dad146119ed57816399e37f1f1461189a5781639a0a1504146117cd5781639a4eb422146116725781639c46e68e146115955781639cf5c6131461153b578163a14e3cb114611430578163a217fddf14611415578163a70ef24f146113f6578163b295a00e146113d7578163b7ea0d12146111d6578163b9209e331461119a578163ba12897b14610e99578163bac34b9214610b43578163c3d3df5814610a29578163c4511c6a146109e2578163d3b5dc3b146109c6578163d547741f14610987578163d58c434114610953578163d6d65f3d14610934578163d9465dbb14610912578163e84112ab146108f3578163ea1ea81f146108cd578163ec87621c14610892578163f0f44260146107f9578163fa5b2cf514610737578163fcfff16f14610689578163fde0735b14610343575063ff32de1c146103075780610012565b3461033f57602036600319011261033f576001816020936001600160a01b0361032e612e98565b168152601085522001549051908152f35b5080fd5b919050606036600319011261068557813591600283101561068157610366612eb3565b916044356001600160a01b03918282169384830361067d57610386613012565b61038e613974565b610396613997565b6103b0848716956103a88715156139b5565b861415613a01565b6103bb341515613a5c565b6103cb6103c661352a565b613aa8565b6103df6103d9600d54613259565b506132aa565b6020810151600381101561066a57906103fd60016104219314613aff565b61041a608060a08301519201516104148b346144af565b90613b57565b1115613b64565b8381541690608060065460248551809581936396834ad360e01b8352868301525afa918215610660578992610630575b5061046c606083015161046660055442613317565b10614046565b67ffffffffffffffff60ff6104868585015160030b6140a1565b16925116966104958834613bef565b94670de0b6b3a7640000938487029680880486149015171561061d57601201958660121161061d57906104f66104d76104ff936104d18a613c02565b90613c10565b6104e08561338a565b906104ef600f54821015613c30565b1115613ca2565b8a349184614458565b94919690938c8080808c600b54166105178a34613317565b905af1610522613812565b50156105cc5761053434600354613b57565b60035561054b6105448d346144af565b9b34613bef565b8381029381850414901517156105b9575092868a61059d9461059760609a98956104d17fff61679fd42b9ad16062cd1c3719eefccc8fcec5083eb954c52d23841a23e36e9d9b99613c02565b90613d20565b600d549080519734895260208901528701521693a46001815580f35b634e487b7160e01b8d526011905260248cfd5b608490602088519162461bcd60e51b8352820152602560248201527f546f6b656e53746f72653a207472616e73666572206973206e6f742070726f63604482015264195cdcd95960da1b6064820152fd5b634e487b7160e01b8c526011845260248cfd5b61065291925060803d8111610659575b61064a8183613237565b810190613fe3565b9038610451565b503d610640565b83513d8b823e3d90fd5b634e487b7160e01b8a526021835260248afd5b8780fd5b8380fd5b8280fd5b9050346106855782600319360112610685576106a3612fba565b600b549160ff8360a01c166003811015610724576106e157837401000000000000000000000000000000000000000060ff60a01b19851617600b5580f35b906020606492519162461bcd60e51b8352820152602060248201527f546f6b656e53746f72653a2073616c6520616c726561647920737461727465646044820152fd5b634e487b7160e01b855260218352602485fd5b9050346106855760203660031901126106855780359161075561306e565b61076b60ff61076385613259565b5054166136ad565b60ff61077684613259565b505460081c166003811015610724576001036107a7578361079684613259565b50805461ff00191661020017905580f35b906020608492519162461bcd60e51b8352820152602660248201527f546f6b656e53746f72653a204d696c6573746f6e652073686f756c642062652060448201526561637469766560d01b6064820152fd5b905034610685576020366003190112610685576001600160a01b0361081c612e98565b610824612fba565b1691821561084f57505073ffffffffffffffffffffffffffffffffffffffff19600b541617600b5580f35b906020606492519162461bcd60e51b8352820152601d60248201527f546f6b656e53746f72653a207a65726f2062616e6b20616464726573730000006044820152fd5b50503461033f578160031936011261033f57602090517f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b088152f35b50503461033f578160031936011261033f576020906108ea613542565b90519015158152f35b50503461033f578160031936011261033f57602090600c549051908152f35b83903461033f57602036600319011261033f5761092d612fba565b3560055580f35b50503461033f578160031936011261033f57602090600d549051908152f35b9050346106855760203660031901126106855735916002831015610984575061097d60209261355a565b9051908152f35b80fd5b919050346106855780600319360112610685576109c291356109bd60016109ac612eb3565b9383875281602052862001546130ca565b613171565b5080f35b50503461033f578160031936011261033f576020905160128152f35b83903461033f57602036600319011261033f57356109fe612fba565b610a156a084595161401484a00000082111561371f565b610a23600f5482101561376b565b600e5580f35b9190503461068557610a3a36612fa4565b929091610a45612fba565b610a56610a50613542565b156135ef565b6103e8808411610ada578411610a71575050600955600a5580f35b906020608492519162461bcd60e51b8352820152602f60248201527f546f6b656e53746f72653a2063616e7420736574207365636f6e64207261746560448201527f206d6f7265207468656e203130302500000000000000000000000000000000006064820152fd5b815162461bcd60e51b8152602081850152602e60248201527f546f6b656e53746f72653a2063616e742073657420666972737420726174652060448201527f6d6f7265207468656e20313030250000000000000000000000000000000000006064820152608490fd5b90503461068557610b5336612f3c565b94929093610b62969296613974565b610b6a613012565b610b72613997565b6001600160a01b039384861695610b8a8715156139b5565b610b98868916881415613a01565b610ba3841515613a5c565b85831697888b526020926017845260ff878d20541615610e4a57610bc86103c661352a565b610bd66103d9600d54613259565b848101516003811015610e375790610bf36001610c0c9314613aff565b61041a8d610414608060a0850151940151918b8b61429f565b8b888254168b825260178652608060018a8420015460248b51809481936396834ad360e01b8352888301525afa908115610e2d579082918d9391610e0f575b50610c6b60608201518484526017895261046660038d8620015442613317565b838767ffffffffffffffff835116948c519283809263313ce56760e01b82525afa928315610e0457908b929193610dc8575b50610cb2610cba9260ff92015160030b6140a1565b169289613bef565b92670de0b6b3a764000093848102948186041490151715610db55750938c9593888f93948e9560ff8d9b9916610cef91613b57565b610cf890613c02565b610d0191613c10565b97610d0b8461338a565b600f548a1015610d1a90613c30565b891115610d2690613ca2565b610d319288856141a4565b95819588849d9496938d3392610d46936140b5565b8252601790522060020188815490610d5d91613b57565b9055610d6a8d898761429f565b95610d76958792613e8f565b600d5491519485941697610d8a9385613cfc565b037f176c329b62e92f50c6c9db5ca025ab96129e1dd260177211150f772adf0ef5e291a46001815580f35b634e487b7160e01b8f526011905260248efd5b60ff919350610cba92610df3610cb2928b3d8d11610dfd575b610deb8183613237565b810190613bd6565b9492509250610c9d565b503d610de1565b8b51903d90823e3d90fd5b610e27915060803d81116106595761064a8183613237565b38610c4b565b89513d84823e3d90fd5b634e487b7160e01b8e526021835260248efd5b865162461bcd60e51b8152908101849052602360248201527f546f6b656e53746f72653a20746f6b656e206973206e6f7420636f6e666967756044820152621c995960ea1b6064820152608490fd5b90503461068557610ea936612efa565b9491610eb794919394613974565b610ebf613997565b610eca3315156139b5565b6001600160a01b0392610ee1848816331415613a01565b610eec821515613a5c565b838616958689526020936017855260ff838b2054161561114b57610f116103c661352a565b610f1f6103d9600d54613259565b8581015160038110156111385790610f3c6001610f549314613aff565b61041a608060a08301519201516104148b898861429f565b89868254168982526017875260806001868420015460248751809481936396834ad360e01b8352888301525afa90811561112e57858b918493611103575b5060036104669184956060610fb396015194815260178c5220015442613317565b8051845163313ce56760e01b815267ffffffffffffffff90911691878285818e5afa918d83156110f85790879291936110cc575b50610ffc6110049260ff92015160030b6140a1565b169287613bef565b92670de0b6b3a7640000938481029481860414901517156105b957508392869260ff8b931661103291613b57565b61103b90613c02565b61104491613c10565b9a61104e3361333a565b600f548d101561105d90613c30565b8c111561106990613ca2565b61107393336141a4565b9195611081828786336140b5565b898c5260179052838b206002018581549061109b91613b57565b9055856110a989878661429f565b809b33956110b696613e8f565b600d54905193849316963395610d8a9385613cfc565b60ff919350611004926110ee610ffc928c8d3d10610dfd57610deb8183613237565b9492509250610fe7565b8751903d90823e3d90fd5b610fb393506104669161112560039260803d81116106595761064a8183613237565b94509150610f92565b85513d84823e3d90fd5b634e487b7160e01b8c526021835260248cfd5b825162461bcd60e51b8152908101859052602360248201527f546f6b656e53746f72653a20746f6b656e206973206e6f7420636f6e666967756044820152621c995960ea1b6064820152608490fd5b50503461033f57602036600319011261033f5760ff816020936001600160a01b036111c3612e98565b1681526013855220541690519015158152f35b919050346106855760803660031901126106855767ffffffffffffffff9180358381116113d35761120a9036908301612ec9565b916024358581116113cf576112229036908301612ec9565b94906044358781116113cb5761123b9036908501612ec9565b9390976064359081116113c7576112559036908301612ec9565b959091611260612fba565b888814806113be575b806113b5575b156113645750895b8a8882106112825780f35b88828989898f958f968a878b888f94816001600160a01b039485916112a791866135be565b6112b0906135ce565b168752816017968160209789895260029e8f8d8d2001549e6112d1926135be565b6112da906135e2565b9f6112e4926135be565b35996112ef926135be565b359a87519c6112fd8e61321b565b15158d52848d01988952878d01998a5260608d019b8c5261131d926135be565b611326906135ce565b16835252209451151561134590869060ff801983541691151516179055565b516001850155519083015551906003015561135f906135af565b611277565b608490602086519162461bcd60e51b8352820152602560248201527f546f6b656e53746f72653a20617272617973206c656e67746873206e6f7420656044820152647175616c7360d81b6064820152fd5b5085881461126f565b50868814611269565b8980fd5b8880fd5b8680fd5b8480fd5b50503461033f578160031936011261033f576020906007549051908152f35b50503461033f578160031936011261033f57602090600f549051908152f35b50503461033f578160031936011261033f5751908152602090f35b9050346106855761144036612f8a565b91939061144b612fba565b611456610a50613542565b815194611462866131e9565b600186526020860192878452860190815260608601918252608086019287845260a08701948552600c5468010000000000000000811015611528578060016114ad9201600c55613259565b979097611516576114cd90511515889060ff801983541691151516179055565b5160038110156115035761ff0087549160081b169061ff0019161786555160018601555160028501555160038401555191015580f35b634e487b7160e01b885260218652602488fd5b634e487b7160e01b8952888752602489fd5b634e487b7160e01b895260418752602489fd5b50503461033f578060031936011261033f57611555612e98565b90602435908115158203610681576001600160a01b036115929361157761306e565b168452601360205283209060ff801983541691151516179055565b80f35b905034610685576020366003190112610685576001600160a01b036115b8612e98565b6115c0612fba565b169081845260146020526115d960ff84862054166137b7565b818452601460205260ff8385205460081c166116095750825260146020528120805461ff00191661010017905580f35b608490602084519162461bcd60e51b8352820152602a60248201527f546f6b656e53746f72653a20526570726573656e74617469766520616c72656160448201527f647920656e61626c6564000000000000000000000000000000000000000000006064820152fd5b9050346106855761168236612fa4565b9261168b612fba565b611696610a50613542565b6116a460ff61076384613259565b60ff6116af83613259565b505460081c1660038110156117ba57600214611752578360036116d184613259565b50015410156116ea57506116e490613259565b50015580f35b5162461bcd60e51b8152602081840152603660248201527f546f6b656e53746f72653a206e657720737570706c79206d757374206265206260448201527f6967676572207468656e20736f6c6420746f6b656e73000000000000000000006064820152608490fd5b5162461bcd60e51b8152602081840152602a60248201527f546f6b656e53746f72653a204d696c6573746f6e652073686f756c64206e6f7460448201527f20626520636c6f736564000000000000000000000000000000000000000000006064820152608490fd5b634e487b7160e01b865260218452602486fd5b90503461068557816003193601126106855767ffffffffffffffff9181358381116113d3576117ff9036908401612ec9565b9390926024359182116118965761181891369101612ec9565b61182394919461306e565b61182e81831461363b565b855b82811061183b578680f35b8061188c61185561185061189194868b6135be565b6135e2565b6001600160a01b0361187061186b85898c6135be565b6135ce565b168a526013602052868a209060ff801983541691151516179055565b6135af565b611830565b8580fd5b9190503461068557606090816003193601126106815767ffffffffffffffff8335818111611896576118cf9036908601612ec9565b93909260243583811161067d576118e99036908801612ec9565b9390966044359182116113cb5761190291369101612ec9565b909361190c61306e565b611917610a50613542565b808714806119e4575b6119299061363b565b88805b888110611937575080f35b8060028a8a8a8a8f8b6119dd9960146119618a8f8f8261195a916119ba996135be565b35986135be565b35976001600160a01b0361199f61186b86519d8e9461197f8661321b565b60019c8d9b8c88526020978881019d8e528b81019e8f52019e8f526135be565b168352522096511515879060ff801983541691151516179055565b51855461ff00191690151560081b61ff00161785555190840155519101556135af565b899061192c565b50868214611920565b90503461068557602036600319011261068557803591611a0b61306e565b611a1361352a565b15611b2457611a2660ff61076385613259565b60ff611a3184613259565b505460081c16600381101561072457611abb5750600d549060ff611a5483613259565b505460081c16906003821015611aa85750600114611a8b575b50611a7781613259565b50805461ff001916610100179055600d5580f35b611a9490613259565b50805461ff00191661020017905538611a6d565b634e487b7160e01b855260219052602484fd5b906020608492519162461bcd60e51b8352820152602860248201527f546f6b656e53746f72653a204d696c6573746f6e652073686f756c64206e6f7460448201527f20626520757365640000000000000000000000000000000000000000000000006064820152fd5b906020606492519162461bcd60e51b8352820152601b60248201527f546f6b656e53746f72653a2073616c65206e6f742061637469766500000000006044820152fd5b9050346106855781600319360112610685578160209360ff92611b88612eb3565b90358252600186526001600160a01b0383832091168252855220541690519015158152f35b50503461033f57602036600319011261033f5760209061097d611bce612e98565b61333a565b50503461033f57602036600319011261033f5760209061097d611bf4612e98565b61338a565b9190503461068557611c0a36612f8a565b93909192611c16612fba565b611c21610a50613542565b611c2f60ff61076386613259565b60ff611c3a85613259565b505460081c166003811015611cd257611c69575050816116e4916001611c61600295613259565b500155613259565b906020608492519162461bcd60e51b8352820152602b60248201527f546f6b656e53746f72653a204d696c6573746f6e652073686f756c64206e6f7460448201527f20626520737461727465640000000000000000000000000000000000000000006064820152fd5b634e487b7160e01b875260218352602487fd5b50503461033f578060031936011261033f5780602092611d03612e98565b6001600160a01b0380611d14612eb3565b1683526016865283832091168252845220549051908152f35b50503461033f578160031936011261033f5760207f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25891611d6b612fba565b611d73613997565b600160ff19600254161760025551338152a180f35b90508160031936011261068557803591600283101561068157611da9612eb3565b611db1613974565b611db9613997565b611dc43315156139b5565b6001600160a01b0391611ddb838316331415613a01565b611de6341515613a5c565b611df16103c661352a565b611dff6103d9600d54613259565b602081015160038110156115035790611e1d6001611e349314613aff565b61041a608060a083015192015161041489346144af565b82845416608060065460248451809481936396834ad360e01b83528a8301525afa90811561203c57879161201e575b50611e78606082015161046660055442613317565b67ffffffffffffffff60ff611e928484015160030b6140a1565b1691511694611ea18634613bef565b93670de0b6b3a7640000928386029580870485149015171561200b57601201948560121161200b5790611ee6611edd611eef936104d189613c02565b6104e03361333a565b88349133614458565b93919590928a8080808b600b5416611f078934613317565b905af1611f12613812565b5015611fba57611f2434600354613b57565b600355611f3b611f348b346144af565b9934613bef565b838102938185041490151715611fa7575087611f60611f669594936104d18994613c02565b33613d20565b600d5490805194348652602086015284015216907fff61679fd42b9ad16062cd1c3719eefccc8fcec5083eb954c52d23841a23e36e60603392a46001815580f35b634e487b7160e01b8b526011905260248afd5b608490602087519162461bcd60e51b8352820152602560248201527f546f6b656e53746f72653a207472616e73666572206973206e6f742070726f63604482015264195cdcd95960da1b6064820152fd5b634e487b7160e01b8a526011835260248afd5b612036915060803d81116106595761064a8183613237565b38611e63565b82513d89823e3d90fd5b50503461033f5736600319011261098457611592612062612e98565b61206a612fba565b602435906001600160a01b03339116613852565b82843461098457602036600319011261098457506120a261209d612e98565b6134a0565b82519182526020820152f35b82843461098457806003193601126109845750600954600a5482519182526020820152f35b50503461033f578160031936011261033f57602090516170808152f35b50503461033f578160031936011261033f5760209060ff6002541690519015158152f35b833461098457806003193601126109845761212d612fba565b8080808047335af1506109c2613812565b50503461033f578160031936011261033f576020906008549051908152f35b50503461033f578160031936011261033f57602090517f4f72063d6dc4cf4bb4e008e0815997320f78a862b3e71fe66fa9ae685d1cd12f8152f35b50503461033f578060031936011261033f576020906001600160a01b036121ce6121c0612e98565b6121c8612eb3565b906133b7565b915191168152f35b50503461033f578160031936011261033f57602090600e549051908152f35b50503461033f578160031936011261033f576020906108ea61352a565b9190503461068557826003193601126106855761222d612fba565b61223561352a565b1561226257827402000000000000000000000000000000000000000060ff60a01b19600b541617600b5580f35b906020606492519162461bcd60e51b8352820152601c60248201527f546f6b656e53746f72653a2073616c65206e6f742073746172746564000000006044820152fd5b83833461033f576122b536612f3c565b9391946122c3939193613974565b6122cb613012565b6122d3613997565b6001600160a01b0392838516946122eb8615156139b5565b6122f9858816871415613a01565b8315916123068315613a5c565b85811697888b526020906010825260ff868d205416156124b35761232b6103c661352a565b6123396103d9600d54613259565b82810151600381101561249e5790612356600161236f9314613aff565b61041a8d610414608060a0850151940151918c896141ee565b855163313ce56760e01b815282818f818e5afa908115612494579060ff918e91612477575b501690670de0b6b3a76400009586890296898804141715612463579181848d8f9a9998979695898f918c848c6123ca839b613c02565b6123d391613c10565b6123dc8d61338a565b90600f548110156123ec90613c30565b11156123f790613ca2565b61240292878d614144565b99829f929891809a3392612415936140b5565b838252601081528d838320600101549061242e91613b57565b938252601090522060010155612445908a836141ee565b966124508893613c02565b61245991613c10565b90610d7696613e8f565b50634e487b7160e01b8c5260118d5260248cfd5b61248e9150843d8611610dfd57610deb8183613237565b8f612394565b87513d8f823e3d90fd5b5050634e487b7160e01b8c5260218d5260248cfd5b60648d838089519262461bcd60e51b845283015260248201527f546f6b656e53746f72653a206173736574206973206e6f7420616c6c6f7765646044820152fd5b90503461068557826003193601126106855761250e612fba565b6002549060ff821615612550575060ff1916600255513381527f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90602090a180f35b8251638dfc202b60e01b8152fd5b905034610685576020366003190112610685576001600160a01b03612581612e98565b612589612fba565b169081845260146020526125a260ff84862054166137b7565b818452601460205260ff8385205460081c16156125cf5750825260146020528120805461ff001916905580f35b608490602084519162461bcd60e51b8352820152602b60248201527f546f6b656e53746f72653a20526570726573656e74617469766520616c72656160448201527f64792064697361626c65640000000000000000000000000000000000000000006064820152fd5b50503461033f578160031936011261033f576020906003549051908152f35b50503461033f578160031936011261033f576020906001600160a01b03600b54169051908152f35b90503461068557816003193601126106855760209282916001600160a01b036126a6612eb3565b1682526012855282822090358252845220549051908152f35b83833461033f578060031936011261033f576126d9612eb3565b90336001600160a01b038316036126f657506109c2919235613171565b5163334bd91960e11b81528390fd5b9050346106855761271536612efa565b9461272293929193613974565b61272a613997565b6127353315156139b5565b6001600160a01b039261274c848816331415613a01565b8215966127598815613a5c565b84821696878a526020916010835260ff858c205416156129015761277e6103c661352a565b61278c6103d9600d54613259565b8381015160038110156128ee57906127a960016127c19314613aff565b61041a608060a08301519201516104148c8b8a6141ee565b845163313ce56760e01b8152838184818d5afa9081156128e4579060ff918d916128c7575b501691670de0b6b3a76400009a8b88029b888d041417156128b4575091848285888b8f96978f8f9c9b9a9961281a90613c02565b61282391613c10565b61282c3361333a565b90600f5481101561283c90613c30565b111561284790613ca2565b6128519333614144565b95819588849c9496938c3392612866936140b5565b838252601081528a838320600101549061287f91613b57565b9382526010905220600101556128968a88876141ee565b9b6128a18d92613c02565b6128aa91613c10565b6110b69533613e8f565b634e487b7160e01b8c526011905260248bfd5b6128de9150853d8711610dfd57610deb8183613237565b386127e6565b86513d8e823e3d90fd5b634e487b7160e01b8d526021845260248dfd5b508160649285519262461bcd60e51b845283015260248201527f546f6b656e53746f72653a206173736574206973206e6f7420616c6c6f7765646044820152fd5b919050346106855780600319360112610685576109c2913561296760016109ac612eb3565b6130f0565b83903461033f57602036600319011261033f5735612988612fba565b61299c67016345785d8a000082101561376b565b6129aa600e5482111561371f565b600f5580f35b905034610685576020908160031936011261068157803567ffffffffffffffff81116113d3576129e39036908301612ec9565b6129ee939193613974565b8015612b9d5733865260148252612a0a60ff86882054166137b7565b3386526014825260ff8587205460081c1615612b4b57855b818110612a3157866001815580f35b612a3f61186b8284886135be565b33885260168085526001600160a01b03888a20921691828a52855287892054908115612b3f57338a528552878920828a528552888881205573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8214600014612b29578880808084335af1612aa5613812565b5015612ae65790612ae192915b88519081527ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683863392a36135af565b612a22565b875162461bcd60e51b8152808701869052601e60248201527f546f6b656e53746f72653a206e617469766520636c61696d206572726f7200006044820152606490fd5b9081612b3a612ae194933384613852565b612ab2565b505050612ae1906135af565b845162461bcd60e51b8152808401839052602660248201527f546f6b656e53746f72653a20526570726573656e746174697665206e6f7420656044820152651b98589b195960d21b6064820152608490fd5b845162461bcd60e51b8152808401839052602160248201527f546f6b656e53746f72653a206e6f20737461626c657320746f2070726f6365736044820152607360f81b6064820152608490fd5b90503461068557602036600319011261068557803591612c08612fba565b600f5483101580612c64575b15612c2157505060075580f35b906020606492519162461bcd60e51b8352820152601960248201527f546f6b656e53746f72653a20696e76616c69642076616c7565000000000000006044820152fd5b50600e54831115612c14565b90503461068557602036600319011261068557816020936001923581528285522001549051908152f35b50503461033f57602036600319011261033f57806080926001600160a01b03612cc1612e98565b8260608551612ccf8161321b565b8281528260208201528287820152015216815260176020522090805190612cf58261321b565b60ff835416151592838352600181015460208401908152606060036002840154938587019485520154940193845282519485525160208501525190830152516060820152f35b50503461033f57602036600319011261033f5760ff816020936001600160a01b03612d64612e98565b1681526010855220541690519015158152f35b50503461033f578160031936011261033f5760209051670de0b6b3a76400008152f35b90503461068557602036600319011261068557359063ffffffff60e01b82168092036106855760209250637965db0b60e01b8214918215612ddf575b50519015158152f35b6301ffc9a760e01b14915038612dd6565b838591346106855760203660031901126106855760a081612e1185936131e9565b82815282602082015282848201528260608201528260808201520152612e3a6103d98435613259565b908051928251151584526020830151906003821015612e855760c08560a0868686602085015280820151908401526060810151606084015260808101516080840152015160a0820152f35b634e487b7160e01b815260218652602490fd5b600435906001600160a01b0382168203612eae57565b600080fd5b602435906001600160a01b0382168203612eae57565b9181601f84011215612eae5782359167ffffffffffffffff8311612eae576020808501948460051b010111612eae57565b6080906003190112612eae576001600160a01b03906004358281168103612eae5791602435916044356002811015612eae57916064359081168103612eae5790565b60a0906003190112612eae576001600160a01b036004358181168103612eae5791602435916044356002811015612eae57916064358281168103612eae57916084359081168103612eae5790565b6060906003190112612eae57600435906024359060443590565b6040906003190112612eae576004359060243590565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604081205460ff1615612ff45750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b3360009081527f0e781e1119f5cbdef17d282bb110c51d6016f6a6b0fe3e5a22e72588fdb32b9160205260409020547f4f72063d6dc4cf4bb4e008e0815997320f78a862b3e71fe66fa9ae685d1cd12f9060ff1615612ff45750565b3360009081527ffdb122eb892c6b3193f8499f050265ce5458caab5f6480270d8972921f24f42960205260409020547f241ecf16d79d0f8dbfb92cbc07fe17840425976cf0667f022fe9877caa831b089060ff1615612ff45750565b80600052600160205260406000203360005260205260ff6040600020541615612ff45750565b9060009180835260016020526001600160a01b036040842092169182845260205260ff6040842054161560001461316c5780835260016020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835260016020526001600160a01b036040842092169182845260205260ff60408420541660001461316c578083526001602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60c0810190811067ffffffffffffffff82111761320557604052565b634e487b7160e01b600052604160045260246000fd5b6080810190811067ffffffffffffffff82111761320557604052565b90601f8019910116810190811067ffffffffffffffff82111761320557604052565b600c5481101561329457600590600c600052027fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c70190600090565b634e487b7160e01b600052603260045260246000fd5b906040516132b7816131e9565b809260ff81548181161515845260081c1660038110156133015760a09160049160208501526001810154604085015260028101546060850152600381015460808501520154910152565b634e487b7160e01b600052602160045260246000fd5b9190820391821161332457565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0316600052601160205260406000205460075490601360205260ff60406000205416613380575b6000918082101561316c5761337d9250613317565b90565b600e549150613368565b6001600160a01b0316600090815260116020526040812054600e548082101561316c5761337d9250613317565b906001600160a01b03809216600092818452602090601582526040928184872054168652601483528386208451906133ee8261321b565b8054916060600260ff80861615159586855260081c16151593848985015260018101548a850152015491015281613498575b506134875750831684526014815281842091805161343d8161321b565b6060600285549560ff8716159460ff86159889875260081c161515809786015260018201549085015201549101529161347f575b5061347a575090565b905090565b905038613471565b856015939296949550525220541690565b905038613420565b906001600160a01b0360609216600052601460205260406000206040516134c68161321b565b81549060ff80831615159283835260081c16151560208201526002600184015493846040840152015494859101526135055750905060095490600a5490565b600954808211156135225750915b600a548082111561347a575090565b905091613513565b60ff600b5460a01c1660038110156133015760011490565b60ff600b5460a01c1660038110156133015760021490565b600d549060ff61356983613259565b505460081c16600381101561330157600114613586575050600090565b6002811015613301576135a45761359e600191613259565b50015490565b61359e600291613259565b60001981146133245760010190565b91908110156132945760051b0190565b356001600160a01b0381168103612eae5790565b358015158103612eae5790565b156135f657565b60405162461bcd60e51b815260206004820152601760248201527f546f6b656e53746f72653a2073616c6520636c6f7365640000000000000000006044820152606490fd5b1561364257565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e53746f72653a20696e76616c696420617272617973206c656e677460448201527f68207365747570000000000000000000000000000000000000000000000000006064820152608490fd5b156136b457565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e53746f72653a204d696c6573746f6e652073686f756c642062652060448201527f646566696e6564000000000000000000000000000000000000000000000000006064820152608490fd5b1561372657565b60405162461bcd60e51b815260206004820152601c60248201527f546f6b656e53746f72653a2076616c756520697320746f6f20626967000000006044820152606490fd5b1561377257565b60405162461bcd60e51b815260206004820152601e60248201527f546f6b656e53746f72653a2076616c756520697320746f6f20736d616c6c00006044820152606490fd5b156137be57565b60405162461bcd60e51b815260206004820152602660248201527f546f6b656e53746f72653a20526570726573656e746174697665206e6f74206460448201526519599a5b995960d21b6064820152608490fd5b3d1561384d573d9067ffffffffffffffff82116132055760405191613841601f8201601f191660200184613237565b82523d6000602084013e565b606090565b61388c926001600160a01b036040519363a9059cbb60e01b60208601521660248401526044830152604482526138878261321b565b61388e565b565b6001600160a01b0316906138b9600080836020829551910182875af16138b2613812565b9084613911565b9081519182151592836138e9575b5050506138d15750565b60249060405190635274afe760e01b82526004820152fd5b81929350906020918101031261033f57602001519081159182150361098457503880806138c7565b90613938575080511561392657805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061396b575b613949575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b15613941565b600260005414613985576002600055565b604051633ee5aeb560e01b8152600490fd5b60ff600254166139a357565b60405163d93c066560e01b8152600490fd5b156139bc57565b60405162461bcd60e51b815260206004820152601c60248201527f546f6b656e53746f72653a207265636569766572206973207a65726f000000006044820152606490fd5b15613a0857565b60405162461bcd60e51b815260206004820152602660248201527f546f6b656e53746f72653a2073656c662d726566657272696e672069732064696044820152651cd8589b195960d21b6064820152608490fd5b15613a6357565b60405162461bcd60e51b815260206004820152601a60248201527f546f6b656e53746f72653a20616d6f756e74206973207a65726f0000000000006044820152606490fd5b15613aaf57565b60405162461bcd60e51b815260206004820152602260248201527f546f6b656e53746f72653a2073616c6520697320616c726561647920636c6f73604482015261195960f21b6064820152608490fd5b15613b0657565b60405162461bcd60e51b815260206004820152602360248201527f546f6b656e53746f72653a206d696c6573746f6e65206973206e6f742061637460448201526269766560e81b6064820152608490fd5b9190820180921161332457565b15613b6b57565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e53746f72653a206d696c6573746f6e6520616c6c6f636174696f6e60448201527f20657863656564000000000000000000000000000000000000000000000000006064820152608490fd5b90816020910312612eae575160ff81168103612eae5790565b8181029291811591840414171561332457565b604d811161332457600a0a90565b8115613c1a570490565b634e487b7160e01b600052601260045260246000fd5b15613c3757565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e53746f72653a206465706f73697420616d6f756e7420697320746f60448201527f6f20736d616c6c000000000000000000000000000000000000000000000000006064820152608490fd5b15613ca957565b60405162461bcd60e51b815260206004820152602560248201527f546f6b656e53746f72653a206465706f73697420616d6f756e7420697320746f6044820152646f2062696760d81b6064820152608490fd5b90815260808101949392600283101561330157606092602083015260408201520152565b939190936001600160a01b038091169060009482865260209360118552613d4c60409889892054613b57565b8488526011865288882055613d6381600854613b57565b600855600d546003613d8a613d848483613d7c86613259565b500154613b57565b92613259565b50015583875260128552613dad88882091600d5492838a52875289892054613b57565b9084885260128652888820908852855287872055169586613dd2575b50505050505050565b60159387865260148452868620805460ff811615613e7d575b50506016845286862073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee87528452613e1b878720918254613b57565b90558685526016835285852073888888888888888888888888888888888888888886528352613e4e868620918254613b57565b9055835252209073ffffffffffffffffffffffffffffffffffffffff1982541617905538808080808080613dc9565b61ffff19166101011790553880613deb565b92919490956001600160a01b03809416918460009684885260209560118752613ebd60409a8b8b2054613b57565b868a52601188528a8a2055613ed481600854613b57565b600855600d546003613eed613d848483613d7c86613259565b50015585895260128752613f108a8a2091600d5492838c5289528b8b2054613b57565b90868a52601288528a8a20908a52875289892055169788613f37575b505050505050505050565b60159589885260148652888820805460ff811615613fd1575b505060168652888820911687528452613f6d878720918254613b57565b90558685526016835285852073888888888888888888888888888888888888888886528352613fa0868620918254613b57565b9055835252209073ffffffffffffffffffffffffffffffffffffffff19825416179055388080808080808080613f2c565b61ffff19166101011790553880613f50565b90816080910312612eae5760405190613ffb8261321b565b80518060070b8103612eae578252602081015167ffffffffffffffff81168103612eae5760208301526040810151908160030b8203612eae5760609160408401520151606082015290565b1561404d57565b60405162461bcd60e51b815260206004820152602660248201527f546f6b656e53746f72653a2050797468204f7261636c65207072696365206f756044820152651d19185d195960d21b6064820152608490fd5b60030b600003908160030b91820361332457565b9291906140dd906140d5846001600160a01b0380600b5416931694613317565b9085846140ee565b816140e757505050565b61388c9230915b9290604051926323b872dd60e01b60208501526001600160a01b03809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff8411176132055761388c9260405261388e565b9161415291949593926133b7565b926001600160a01b0384161561419757906141919161418361418a614176876134a0565b906103e89384918b613bef565b0498613bef565b04906141ee565b91929190565b5050915090600090600090565b916141b291949593926133b7565b926001600160a01b038416156141975790614191916141836141d6614176876134a0565b049061429f565b60ff16604d811161332457600a0a90565b9060206001600160a01b03939260046040518096819363313ce56760e01b8352165afa92831561429357600093614273575b50670de0b6b3a76400009081810290808204831481151715613324576ec097ce7bc90715b34b9f1000000000029181830414901517156133245761426d6104d1916104d161337d956141dd565b9161355a565b61428c91935060203d8111610dfd57610deb8183613237565b9138614220565b6040513d6000823e3d90fd5b9291926001600160a01b039360049480865416921690600092828452601760205260409460806001878720015460248851809581936396834ad360e01b83528d8301525afa91821561444e57859261442e575b50614313606083015185875260176020526104666003898920015442613317565b87602060ff6143338967ffffffffffffffff87511696015160030b6140a1565b169588519283809263313ce56760e01b82525afa968715614425575085966143ff575b509061436191613bef565b90670de0b6b3a764000091828102908082048414811517156143ec576ec097ce7bc90715b34b9f1000000000029281840414901517156143d95760ff916104d16143aa9261355a565b9316019060ff82116143c6575061337d9293506104d1906141dd565b634e487b7160e01b815260118552602490fd5b634e487b7160e01b845260118752602484fd5b634e487b7160e01b865260118952602486fd5b6143619291965061441d9060203d8111610dfd57610deb8183613237565b959091614356565b513d87823e3d90fd5b61444791925060803d81116106595761064a8183613237565b90386142f2565b86513d87823e3d90fd5b9061446691949293946133b7565b916001600160a01b038316156144a3576141919061449661449d614489866134a0565b906103e89384918a613bef565b0497613bef565b046144af565b50915090600090600090565b6001600160a01b03600454169060806006546024604051809581936396834ad360e01b835260048301525afa9182156142935760009261455b575b5061452890614503606084015161046660055442613317565b67ffffffffffffffff60ff61451e604086015160030b6140a1565b1693511690613bef565b670de0b6b3a764000090818102918183041490151715613324576145556104d1916104d161337d9561355a565b916141dd565b6145289192506145789060803d81116106595761064a8183613237565b91906144ea56fea264697066735822122053c5ccda4523101e313d23e8a9e212c15fc3c6b6e03db37b7cd6791aa1d36e6364736f6c634300081500332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d0000000000000000000000002c9d77a9107cb4551a2bb3b1beded22f520e9ced00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000004305fb66699c3b2702d4d05cf36551390a4c69c6ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000003000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000c5f0f7b66764f6ec8c8dff7ba683102295e16409000000000000000000000000000000000000000000000000000000000000000100000000000000000000000095ad61b0a150d79219dcf64e1e6cc01f0b64c4ce0000000000000000000000000000000000000000000000000000000000000001f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a