0 txs
1.2k calls
constructor
constructor()
functions
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
deposits
viewfunction deposits(uint256) view returns (address owner, uint128 liquidity, address token0, address token1)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
incentives
viewfunction incentives(bytes32) view returns (address pool, address rewardToken, uint256 reward, uint256 startTime, uint256 endTime)
marketTokenIds
viewfunction marketTokenIds(address, uint256) view returns (uint256)
nonfungiblePositionManager
viewfunction nonfungiblePositionManager() view returns (address)
onERC721Received
viewfunction onERC721Received(address, address, uint256, bytes) view returns (bytes4)
poolIncentives
viewfunction poolIncentives(address, uint256) view returns (bytes32)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenIdMarket
viewfunction tokenIdMarket(uint256) view returns (address)
uniswapV3Staker
viewfunction uniswapV3Staker() view returns (address)
createIncentive
nonpayablefunction createIncentive(address pool, address rewardToken, uint256 reward, uint256 startTime, uint256 endTime)
endIncentive
nonpayablefunction endIncentive(address pool, address rewardToken, uint256 startTime, uint256 endTime)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address _nonfungiblePositionManager, address _uniswapV3Staker)
mintAndProvideLiquidity
nonpayablefunction mintAndProvideLiquidity(address truthMarket, uint256 paymentTokenAmount)
mintAndProvideLiquidityWithPrice
nonpayablefunction mintAndProvideLiquidityWithPrice(address truthMarket, uint256 paymentTokenAmount, uint256 yesInitialPrice, uint256 singleSidedLiquidityAmount)
removeLiquidity
nonpayablefunction removeLiquidity(uint256 tokenId) returns (uint256 amount0, uint256 amount1)
removeMarketLiquidity
nonpayablefunction removeMarketLiquidity(address market)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdrawAllToken
nonpayablefunction withdrawAllToken(address token, address to)
withdrawToken
nonpayablefunction withdrawToken(address token, uint256 amount, address to)
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
IncentiveCreated
event IncentiveCreated(bytes32 indexed incentiveId, address indexed pool, address indexed rewardToken, uint256 reward, uint256 startTime, uint256 endTime)
IncentiveEnded
event IncentiveEnded(bytes32 indexed incentiveId, address indexed pool, address indexed rewardToken, uint256 startTime, uint256 endTime)
Initialized
event Initialized(uint8 version)
LiquidityRemoved
event LiquidityRemoved(address indexed market, uint256 indexed tokenId, uint256 amount0, uint256 amount1)
MarketLiquidityProvided
event MarketLiquidityProvided(address market)
MarketLiquidityRemoved
event MarketLiquidityRemoved(address indexed market, uint256 totalAmount0, uint256 totalAmount1)
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)
Upgraded
event Upgraded(address indexed implementation)
errors
No errors.
creation bytecode
0x60a0806040523460d657306080525f549060ff8260081c166084575060ff80821603604b575b604051614fb590816100db8239608051818181611350015281816114af0152611cfd0152f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6025565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a714612dbc5750806303baa0ea14612d94578063150b7a0214612cc5578063248a9ca314612c985780632f2ff15d14612bf057806331c1aa3f14611f5357806336568abe14611ec05780633659cfe614611cd85780633aeebedb14611c1c5780633ccdbb2814611bcb5780634255d5e814611978578063485cc955146116ff5780634f1ef2861461143457806351f8705a1461140057806352d1902d1461133d57806360777795146112dc57806391d14854146112925780639c8f9f2314610f66578063a217fddf14610f4a578063b02c43d014610ee8578063b44a272214610ebf578063b73178bf146103ea578063c5d62bd7146103a2578063d28bb1b21461034b578063d547741f1461030a578063f74767a5146101da5763fbe4bc3714610147575f80fd5b346101c95760403660031901126101c95780610161612e0f565b610169613123565b303b156101d7576040516331c1aa3f60e01b81526001600160a01b03909116600482015260248035908201526032604482015260648101829052818160848183305af180156101cc576101b95750f35b6101c290612e3b565b6101c95780f35b80fd5b6040513d84823e3d90fd5b50fd5b50346101c95760803660031901126101c9576101f4612e0f565b6101fc612e25565b6044359060643561020b613123565b6040516001600160a01b03928316948316939061022781612e4e565b8581528660208095878285015284604085015285606085015230608085015260fc541660a460405180948193632d6b69b960e21b835261026a60048401896130c6565b5af19081156102ff5785916102ce575b5050907f5c7cb2fcfb798b4434a2e9365701ae8ce313266e9fc99e792e48739b04d52ba29260409283516102b187820180936130c6565b60a081526102be81612ebb565b519020948351928352820152a480f35b819392933d83116102f8575b6102e48183612ed6565b810103126102f45790835f61027a565b5f80fd5b503d6102da565b6040513d8a823e3d90fd5b50346101c95760403660031901126101c95761034860043561032a612e25565b9080845260c96020526103436001604086200154613426565b613f8f565b80f35b50346101c95760403660031901126101c957610365612e0f565b6001600160a01b0316815261010060205260408120805460243592908310156101c95760206103948484612f12565b90546040519160031b1c8152f35b50346101c95760403660031901126101c9576103bc612e0f565b6001600160a01b0316815260ff60205260408120805460243592908310156101c95760206103948484612f12565b50346101c95760203660031901126101c957610404612e0f565b61040c613123565b6001600160a01b0381168252610100602052604082208054805b610ac85750506001600160a01b03811682526101006020526040822080548382559081610aaa575b505060405163a3dd261960e01b81526020816004816001600160a01b0386165afa908115610679578391610a6f575b506008811015610a5b576007146104cb575b7f7fd2bd6999ffd36e35ed6ce6daf531c90a1d703b2c4cf9daac7f71ae6d209b0d604080519284845284602085015260018060a01b031692a280f35b604051632486d67160e01b815282906020816004816001600160a01b0387165afa9081156101cc578291610a26575b50604051630786cdd960e51b81526020816004816001600160a01b0388165afa9081156106795783916109ec575b506040516308d4f88560e11b8152916020836004816001600160a01b0389165afa92831561092a5784936109b0575b50600181036106bb57506040516370a0823160e01b815230600482015291506001600160a01b0316602082602481845afa918215610679578392610684575b50816105ff575b506001600160a01b0383163b156105fb5760405163db006a7560e01b815260048101919091528181602481836001600160a01b0388165af180156101cc576105e7575b505061048f565b6105f090612e3b565b6105fb57815f6105e0565b5080fd5b60405163095ea7b360e01b81526001600160a01b038516600482015260248101839052906020908290604490829087905af18015610679571561059d576020813d602011610671575b8161065560209383612ed6565b8101031261066d5761066690612f5c565b505f61059d565b8280fd5b3d9150610648565b6040513d85823e3d90fd5b925090506020823d6020116106b3575b816106a160209383612ed6565b810103126102f457839151905f610596565b3d9150610694565b600281036107475750506040516370a0823160e01b8152306004820152906001600160a01b0316602082602481845afa9182156106795783926106845750816105ff57506001600160a01b0383163b156105fb5760405163db006a7560e01b815260048101919091528181602481836001600160a01b0388165af180156101cc576105e757505061048f565b600314610757575b50505061048f565b6040516370a0823160e01b808252306004830152909290916001600160a01b031690602084602481855afa93841561096e578594610979575b506040519283523060048401526001600160a01b031692602083602481875afa92831561096e578593610935575b50908185926108a8575b5050508061082a575b5050506001600160a01b0381163b156105fb57604051633415a4cf60e01b815282908181600481836001600160a01b0388165af180156101cc57610816575b8061074f565b61081f90612e3b565b6105fb57815f610810565b60405163095ea7b360e01b81526001600160a01b038516600482015260248101919091529160209183916044918391905af180156106795761086f575b8083916107d1565b6020813d6020116108a0575b8161088860209383612ed6565b8101031261066d5761089990612f5c565b505f610867565b3d915061087b565b60405163095ea7b360e01b81526001600160a01b038816600482015260248101919091529160209183916044918391905af1801561092a576108ed575b8084916107c8565b6020813d602011610922575b8161090660209383612ed6565b8101031261091e5761091790612f5c565b505f6108e5565b8380fd5b3d91506108f9565b6040513d86823e3d90fd5b91945091506020813d602011610966575b8161095360209383612ed6565b810103126102f4575185939091846107be565b3d9150610946565b6040513d87823e3d90fd5b945092506020843d6020116109a8575b8161099660209383612ed6565b810103126102f457859351925f610790565b3d9150610989565b9092506020813d6020116109e4575b816109cc60209383612ed6565b8101031261091e576109dd90612f3b565b915f610557565b3d91506109bf565b90506020813d602011610a1e575b81610a0760209383612ed6565b8101031261066d57610a1890612f3b565b5f610528565b3d91506109fa565b9150506020813d602011610a53575b81610a4260209383612ed6565b810103126102f4578290515f6104fa565b3d9150610a35565b634e487b7160e01b83526021600452602483fd5b90506020813d602011610aa2575b81610a8a60209383612ed6565b8101031261066d5751600881101561066d575f61047d565b3d9150610a7d565b835260208320908101905b8181101561044e575f8155600101610ab5565b5f198101818111610eab57610add9083612f12565b905490818160031b1c865260fd6020526001600160801b03600160408820015416610b14575b5050610b0e90613117565b80610426565b610b1c613123565b818160031b1c865260fd6020526001600160801b036040816001828a2001541660a48251610b4981612e4e565b868660031b1c8152602081019283528a84820181815260608301828152608084019042825260018060a01b0360fb5416928851998a988997630624e65f60e11b8952516004890152511660248701525160448601525160648501525160848401525af18015610e8257610e8d575b5060fb54604080516001600160801b03926060916084918b906001600160a01b0316610be283612e69565b600388901b89901c83523060208401908152868401888152958401888152875163fc6f786560e01b81529451600486015290516001600160a01b03166024850152945187166044840152935190951660648201529384928391905af1908115610e825787908892610e50575b50600383811b85901c895260fd60205260408920805460028201549190920154610c969285926001600160a01b0391821692821691610c91918791859116614002565b614002565b600383901b84901c885261010160205260408820805491906001600160a01b038316610cf1575b5050505090610b0e929160031b1c855260fd602052846003604082208281558260018201558260028201550155905f610b03565b6001600160a01b0319831690556001600160a01b0382168952610100602052604089209892979596929591929091865b8a5480821015610e3b57610d35828d612f12565b898960031b1c91549060031b1c14610d505750600101610d21565b5f9a92999796959493989a198101908111610e2757610d83610d75610d99928e612f12565b90549060031b1c928d612f12565b819391549060031b91821b915f19901b19161790565b90558954998a15610e1357610b0e9798999a5f190190610db98282612f12565b8154905f199060031b1b19169055555b60405191825260208201527f1dc8bb69df2b8e91fbdcbfcf93d951b3f0000f085a95fe3f7946d6161439245d6040858560031b1c9360018060a01b031692a39091925f8080610cbd565b634e487b7160e01b8a52603160045260248afd5b634e487b7160e01b8b52601160045260248bfd5b505097610b0e96995096949392919096610dc9565b9050610e74915060403d604011610e7b575b610e6c8183612ed6565b810190613101565b905f610c4e565b503d610e62565b6040513d89823e3d90fd5b610ea59060403d604011610e7b57610e6c8183612ed6565b50610bb7565b634e487b7160e01b85526011600452602485fd5b50346101c957806003193601126101c95760fb546040516001600160a01b039091168152602090f35b50346101c95760203660031901126101c9576040608091600435815260fd6020522060018060a01b0380825416916001600160801b03600182015416916003816002840154169201541691604051938452602084015260408301526060820152f35b50346101c957806003193601126101c957602090604051908152f35b50346101c95760203660031901126101c957610f80613123565b600435815260fd6020526001600160801b03604081600182852001541660a48251610faa81612e4e565b6004358152602081019283528584820181815260608301828152608084019042825260018060a01b0360fb5416928851998a988997630624e65f60e11b8952516004890152511660248701525160448601525160648501525160848401525af180156101cc57611274575b5060fb54604080516001600160801b039260609160849186906001600160a01b031661104083612e69565b6004358352306020840152868684015286858401528551968795869463fc6f786560e01b86528051600487015260018060a01b036020820151166024870152828982015116604487015201511660648401525af180156101cc5782918391611253575b50600435835260fd60205260408320805460028201546003928301549295926110e59285926001600160a01b0391821692821691610c91918991859116614002565b60043581526101016020526040812080546001600160a01b0381169591908661113a575b6040868686600435815260fd6020526003848220828155826001820155826002820155015582519182526020820152f35b6001600160a01b031916905584825261010060205260408220949093929190815b8654808210156112435761116f8289612f12565b600435915490891b1c14611186575060010161115b565b96905f969293949596199788810190811161122f57610d836111ab6111b89285612f12565b905490861b1c9284612f12565b9055805496871561121b578060409801926111d38484612f12565b81939154921b1b19169055555b8451908482528360208301527f1dc8bb69df2b8e91fbdcbfcf93d951b3f0000f085a95fe3f7946d6161439245d8660043593a35f8080611109565b634e487b7160e01b85526031600452602485fd5b634e487b7160e01b86526011600452602486fd5b50509091929350604094506111e0565b905061126e915060403d604011610e7b57610e6c8183612ed6565b5f6110a3565b61128c9060403d604011610e7b57610e6c8183612ed6565b50611015565b50346101c95760403660031901126101c95760406112ae612e25565b91600435815260c9602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346101c95760203660031901126101c957604060a091600435815260fe60205220600180831b0390818154169160018201541690600281015460046003830154920154926040519485526020850152604084015260608301526080820152f35b50346101c957806003193601126101c9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036113955760206040515f80516020614f608339815191528152f35b60405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608490fd5b50346101c95760203660031901126101c95760209060043581526101018252604060018060a01b0391205416604051908152f35b5060403660031901126101c957611449612e0f565b602435906001600160401b03821161066d573660238301121561066d57816004013561147481612ef7565b906114826040519283612ed6565b8082528460209485840192366024828401011161066d578060248893018537840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906114dd30831415612fc4565b6114f95f80516020614f60833981519152928284541614613025565b6115016132e9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561153957505050506103489150614233565b84939416906040516352d1902d60e01b81528681600481865afa5f91816116d0575b506115bc5760405162461bcd60e51b815260048101889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b95949503611679576115cd83614233565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2835115801590611671575b611608575b5050505080f35b5f8091611667957f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c6040519661163d88612ea0565b60278852870152660819985a5b195960ca1b60408701525190845af4611661614e9f565b91614ece565b505f808080611601565b5060016115fc565b60405162461bcd60e51b815260048101859052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508781813d83116116f8575b6116e88183612ed6565b810103126102f45751905f61155b565b503d6116de565b50346101c95760403660031901126101c957611719612e0f565b611721612e25565b82549160ff90818460081c16159283809461196c575b8015611956575b156118fa5760ff19858116600117875594846118e9575b5061176e83875460081c1661176981614132565b614132565b60fb80546001600160a01b039384166001600160a01b03199182161790915560fc8054929093169116179055335f9081527f81fe90a866a48a634a12852c1be675b683a22307409932a7443b8029347be75660209081526040909120549093908216156118a0575b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92991825f5260c9855260405f20335f52855260405f20541615611854575b505061181e575080f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061ff0019835416835560405160018152a180f35b815f5260c9845260405f20335f528452600160405f2091825416179055339033907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a45f80611814565b5f805260c9845260405f20335f52845260405f2060018282541617905533335f7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a46117d6565b61ffff19166101011786555f611755565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561173e575060018386161461173e565b50600183861610611737565b50346101c95760a03660031901126101c957611992612e0f565b61199a612e25565b60443590816084356064356119ad613123565b60fc5460405163095ea7b360e01b81526001600160a01b0391821660048201526024810196909652938416956020959086826044818c8c5af1918215611bc0578692611b89575b501694604051611a0381612e4e565b8781528682820152826040820152836060820152306080820152888660fc5416803b156105fb5781809160c460405180948193635cc5e3d960e01b8352611a4d600484018a6130c6565b8c60a48401525af180156101cc57611b71575b5050604051611a7283820180936130c6565b60a08152611a7f81612ebb565b519020946004868a60405193611a9485612e4e565b8a85528585018c815260408601918a835280604060608901958b875260808a01978d8952815260fe8b5220975116906001600160601b0360a01b918289541617885560018801925116908254161790555160028501555160038401555191015585885260ff815260408820805490600160401b821015611b5d579186611b49610d83846060989660017f238a6118211b5bf2823b96f58a829b681f545db0dbe2a6483eea7033d55099d39b9997018155612f12565b90556040519384528301526040820152a480f35b634e487b7160e01b8a52604160045260248afd5b611b7a90612e3b565b611b8557885f611a60565b8880fd5b91508682813d8311611bb9575b611ba08183612ed6565b81010312611b8557611bb28692612f5c565b505f6119f4565b503d611b96565b6040513d8b823e3d90fd5b50346101c95760603660031901126101c957611be5612e0f565b6001600160a01b0360443581811692918382036102f457611c1261034894611c0b6132e9565b1515613086565b6024359216614002565b50346101c95760403660031901126101c957611c36612e0f565b611c3e612e25565b90611c476132e9565b6001600160a01b0390611c5d8383161515613086565b6040516370a0823160e01b8152306004820152911691602082602481865afa91821561092a578492611ca4575b5081611c94578380f35b611c9d92614002565b5f80808380f35b9091506020813d602011611cd0575b81611cc060209383612ed6565b810103126102f45751905f611c8a565b3d9150611cb3565b50346101c9576020806003193601126105fb57611cf3612e0f565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690611d2b30831415612fc4565b611d475f80516020614f60833981519152928284541614613025565b611d4f6132e9565b60405191848301918383106001600160401b03841117611eac578260405286845260ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f14611da957505050506103489150614233565b84939416906040516352d1902d60e01b81528681600481865afa5f9181611e7d575b50611e2c5760405162461bcd60e51b815260048101889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b9594950361167957611e3d83614233565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2835115801590611e7657611608575050505080f35b505f6115fc565b9091508781813d8311611ea5575b611e958183612ed6565b810103126102f45751905f611dcb565b503d611e8b565b634e487b7160e01b5f52604160045260245ffd5b50346101c95760403660031901126101c957611eda612e25565b336001600160a01b03821603611ef65761034890600435613f8f565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b50346102f45760803660031901126102f457611f6d612e0f565b606490611f78613123565b604435151580612be5575b15612bb257604051633013ce2960e01b81526020816004816001600160a01b0386165afa908115612b34575f91612b78575b5082604435810311612ac157611fce8335602435612f4f565b60405163095ea7b360e01b81526001600160a01b038416600482015260248101829052602081806044810103815f6001600160a01b0388165af18015612b3457612b3f575b506001600160a01b0383163b156102f45760405163140e25ad60e31b815260048101919091525f81602481836001600160a01b0388165af18015612b3457612b21575b506040805163392db6d360e21b81529390846004816001600160a01b0387165afa93841561096e5785908695612ad5575b5081612097604435602435612f69565b049060243582810311612ac15760405163313ce56760e01b8152926020846004816001600160a01b0389165afa9384156102ff578894612a85575b50604051630786cdd960e51b81526020816004816001600160a01b038b165afa908115611bc0578991612a46575b5060405163313ce56760e01b815290602090829060049082906001600160a01b03165afa908115611bc0578991612a0c575b506040516308d4f88560e11b8152936020856004816001600160a01b038c165afa9485156129c2578a956129cd575b5060405163313ce56760e01b815294602090869060049082906001600160a01b03165afa9485156129c2578a95612982575b506121a060ff8316612fa8565b6121ac90602435612f69565b6121b860ff8816612fa8565b6121c191612f7c565b956121ce60ff8716612fa8565b6121da90602435612f69565b6121e660ff8316612fa8565b6121ef91612f7c565b9260ff166121fc90612fa8565b612207908535612f69565b61221360ff8316612fa8565b61221c91612f7c565b9560ff1661222990612fa8565b612234908535612f69565b9060ff1661224190612fa8565b61224a91612f7c565b604051630786cdd960e51b81529096908b9080806001600160a01b038d165a92600491602094fa9081156101cc578291612940575b5060fb546122cf9260209290916001600160a01b031661229f8b87612f4f565b60405163095ea7b360e01b81526001600160a01b0390921660048301526024820152938492839182906044820190565b03926001600160a01b03165af1801561288157612907575b506040516308d4f88560e11b81528b906020816004816001600160a01b038f165afa9081156101cc5782916128c5575b5060fb546123379260209290916001600160a01b031661229f8c89612f4f565b03926001600160a01b03165af180156128815761288c575b5060fb5460405163095ea7b360e01b81526001600160a01b03909116600482015260248035908201526020818d81806044810103916001600160a01b038e165af1801561288157612848575b50604051630786cdd960e51b81528b906020816004816001600160a01b038f165afa9081156101cc57829161280e575b506040516334324e9f60e21b81526020816004816001600160a01b038c165afa801561067957858d938a938e96936127c0575b5061241a966044359690916001600160a01b03909116906135d5565b6040516308d4f88560e11b81528a6020826004816001600160a01b038e165afa80156127b3578190612779575b6004925060208c604051948580926334324e9f60e21b825260018060a01b03165afa9081156101cc578b938d9392612730575b5061249a9560443588039560243503916001600160a01b038d16906135d5565b356124da575b6040516001600160a01b038616815287907f2f9eb3607e1ab9527e84637029cbf03ef11854f6342d9be56434e8f8ea66a91390602090a180f35b604051630786cdd960e51b8152906020826004816001600160a01b038a165afa9182156102ff5788926126f0575b506040516334324e9f60e21b8152916020836004816001600160a01b0386165afa908115611bc05787938a926126ad575b5061254f94906001600160a01b03881690613b4b565b6040516308d4f88560e11b81526020816004816001600160a01b0388165afa9081156126a2578691612664575b506040516334324e9f60e21b8152926020846004816001600160a01b038a165afa938415610e825787946125f0575b509484936125e793602096937f2f9eb3607e1ab9527e84637029cbf03ef11854f6342d9be56434e8f8ea66a9139860018060a01b031690613b4b565b905f80806124a0565b9192949350946020823d60201161265c575b8161260f60209383612ed6565b81010312612658577f2f9eb3607e1ab9527e84637029cbf03ef11854f6342d9be56434e8f8ea66a913956020956125e79461264a8795612fb6565b9650939650935090956125ab565b8680fd5b3d9150612602565b90506020813d60201161269a575b8161267f60209383612ed6565b810103126126965761269090612f3b565b5f61257c565b8580fd5b3d9150612672565b6040513d88823e3d90fd5b935090506020833d6020116126e8575b816126ca60209383612ed6565b81010312611b855761254f936126e08894612fb6565b919094612539565b3d91506126bd565b9091506020813d602011612728575b8161270c60209383612ed6565b810103126127245761271d90612f3b565b905f612508565b8780fd5b3d91506126ff565b92509250506020813d602011612771575b8161274e60209383612ed6565b8101031261276d5761249a938a926127668d93612fb6565b919561247a565b8b80fd5b3d9150612741565b506020823d6020116127ab575b8161279360209383612ed6565b810103126101c9576127a6600492612f3b565b612447565b3d9150612786565b50604051903d90823e3d90fd5b945094505050506020813d602011612806575b816127e060209383612ed6565b8101031261280257868a928561241a956127fa8f95612fb6565b9290966123fe565b8c80fd5b3d91506127d3565b90506020813d602011612840575b8161282960209383612ed6565b810103126105fb5761283a90612f3b565b5f6123cb565b3d915061281c565b6020813d602011612879575b8161286160209383612ed6565b8101031261276d5761287290612f5c565b505f61239b565b3d9150612854565b6040513d8e823e3d90fd5b6020813d6020116128bd575b816128a560209383612ed6565b8101031261276d576128b690612f5c565b505f61234f565b3d9150612898565b90506020813d6020116128ff575b816128e060209383612ed6565b810103126105fb57612337916128f7602092612f3b565b915091612317565b3d91506128d3565b6020813d602011612938575b8161292060209383612ed6565b8101031261276d5761293190612f5c565b505f6122e7565b3d9150612913565b90506020813d60201161297a575b8161295b60209383612ed6565b810103126105fb576122cf91612972602092612f3b565b91509161227f565b3d915061294e565b9094506020813d6020116129ba575b8161299e60209383612ed6565b810103126129b6576129af90612f9a565b935f612193565b8980fd5b3d9150612991565b6040513d8c823e3d90fd5b94506020853d602011612a04575b816129e860209383612ed6565b810103126129b65760206129fd600496612f3b565b9550612161565b3d91506129db565b90506020813d602011612a3e575b81612a2760209383612ed6565b81010312611b8557612a3890612f9a565b5f612132565b3d9150612a1a565b90506020813d602011612a7d575b81612a6160209383612ed6565b81010312611b85576020612a76600492612f3b565b9150612100565b3d9150612a54565b9093506020813d602011612ab9575b81612aa160209383612ed6565b8101031261272457612ab290612f9a565b925f6120d2565b3d9150612a94565b634e487b7160e01b5f52601160045260245ffd5b9450506040843d604011612b19575b81612af160409383612ed6565b81010312612b1557612b0e6020612b0786612f3b565b9501612f3b565b935f612087565b8480fd5b3d9150612ae4565b612b2c919450612e3b565b5f925f612056565b6040513d5f823e3d90fd5b6020813d602011612b70575b81612b5860209383612ed6565b810103126102f457612b6990612f5c565b505f612013565b3d9150612b4b565b90506020813d602011612baa575b81612b9360209383612ed6565b810103126102f457612ba490612f3b565b5f611fb5565b3d9150612b86565b5060405162461bcd60e51b815260206004820152600d60248201526c496e76616c696420726174696f60981b6044820152fd5b508160443510611f83565b346102f45760403660031901126102f457600435612c0c612e25565b815f5260c9602052612c24600160405f200154613426565b815f5260c960205260405f209060018060a01b031690815f5260205260ff60405f20541615612c4f57005b815f5260c960205260405f20815f5260205260405f20600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d5f80a4005b346102f45760203660031901126102f4576004355f5260c96020526020600160405f200154604051908152f35b346102f45760803660031901126102f457612cde612e0f565b50612ce7612e25565b506064356001600160401b038082116102f457366023830112156102f45781600401359081116102f457369101602401116102f45760fb546001600160a01b03163303612d4057604051630a85bd0160e11b8152602090f35b60405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920616363657074204e4654732066726f6d20706f736974696f6e206d60448201526530b730b3b2b960d11b6064820152608490fd5b346102f4575f3660031901126102f45760fc546040516001600160a01b039091168152602090f35b346102f45760203660031901126102f4576004359063ffffffff60e01b82168092036102f457602091637965db0b60e01b8114908115612dfe575b5015158152f35b6301ffc9a760e01b14905083612df7565b600435906001600160a01b03821682036102f457565b602435906001600160a01b03821682036102f457565b6001600160401b038111611eac57604052565b60a081019081106001600160401b03821117611eac57604052565b608081019081106001600160401b03821117611eac57604052565b61016081019081106001600160401b03821117611eac57604052565b606081019081106001600160401b03821117611eac57604052565b60c081019081106001600160401b03821117611eac57604052565b90601f801991011681019081106001600160401b03821117611eac57604052565b6001600160401b038111611eac57601f01601f191660200190565b8054821015612f27575f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b51906001600160a01b03821682036102f457565b91908201809211612ac157565b519081151582036102f457565b81810292918115918404141715612ac157565b8115612f86570490565b634e487b7160e01b5f52601260045260245ffd5b519060ff821682036102f457565b604d8111612ac157600a0a90565b51908160020b82036102f457565b15612fcb57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b1561302c57565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b1561308d57565b60405162461bcd60e51b8152602060048201526011602482015270125b9d985b1a59081c9958da5c1a595b9d607a1b6044820152606490fd5b80516001600160a01b039081168352602080830151821690840152604080830151908401526060808301519084015260809182015116910152565b91908260409103126102f4576020825192015190565b8015612ac1575f190190565b335f9081527fc99cfc74cbb51adc7ca8731c432a51a31a086a1789003f0b773be6e802362bf46020908152604091829020547f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929929060ff161561318557505050565b61318e336142d3565b92815161319a81612e69565b60428152838101916060368437815115612f275760308353815160019060011015612f2757607860218401536041905b8082116132a55750506132635761325f9461324992604892855196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b82860152805191829101603786015e8301907001034b99036b4b9b9b4b733903937b6329607d1b60378301525180928583015e015f83820152036028810185520183612ed6565b5162461bcd60e51b815291829160048301614192565b0390fd5b60648484519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f8116906010821015612f27576132e3916f181899199a1a9b1b9c1cb0b131b232b360811b901a6132d985876142c2565b5360041c92613117565b906131ca565b335f9081527f81fe90a866a48a634a12852c1be675b683a22307409932a7443b8029347be75660209081526040918290205460ff1615613327575050565b613330336142d3565b915f815161333d81612e69565b60428152838101916060368437815115612f275760308353815160019060011015612f2757607860218401536041905b8082116133ec5750506132635761325f9461324992604892855196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b82860152805191829101603786015e8301907001034b99036b4b9b9b4b733903937b6329607d1b60378301525180928583015e015f83820152036028810185520183612ed6565b9091600f8116906010821015612f2757613420916f181899199a1a9b1b9c1cb0b131b232b360811b901a6132d985876142c2565b9061336d565b805f52602060c981526040805f20335f52825260ff815f2054161561344a57505050565b613453336142d3565b92815161345f81612e69565b60428152838101916060368437815115612f275760308353815160019060011015612f2757607860218401536041905b80821161350e5750506132635761325f9461324992604892855196879376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b82860152805191829101603786015e8301907001034b99036b4b9b9b4b733903937b6329607d1b60378301525180928583015e015f83820152036028810185520183612ed6565b9091600f8116906010821015612f2757613542916f181899199a1a9b1b9c1cb0b131b232b360811b901a6132d985876142c2565b9061348f565b519061ffff821682036102f457565b908160e09103126102f45780516001600160a01b03811681036102f4579161358160208301612fb6565b9161358e60408201613548565b9161359b60608301613548565b916135a860808201613548565b916135c160c06135ba60a08501612f9a565b9301612f5c565b90565b60ff16604d8111612ac157600a0a90565b939692949192915f916001600160a01b038082169087161015613b0657949593925f915b604051633850c7bd60e01b81526001600160a01b0391909116929060e081600481875afa908115612b34575f91613ad1575b506001600160a01b031615613900575b505050508560020b958615612f86578061365e6136699289620d89e719056141de565b97620d89e8056141de565b6040519661367688612e84565b60018060a01b038616885260018060a01b0385166020890152610bb8604089015260020b606088015260020b608087015260a086015260c08501525f60e08501525f6101008501523061012085015242610140850152608061014061016460018060a01b0360fb5416965f6040519889948593634418b22b60e11b855260018060a01b03815116600486015260018060a01b03602082015116602486015262ffffff6040820151166044860152606081015160020b60648601528781015160020b608486015260a081015160a486015260c081015160c486015260e081015160e486015261010081015161010486015260018060a01b036101208201511661012486015201516101448401525af1918215612b34575f945f936138b3575b506001600160801b03604051936137aa85612e69565b30855216602084015260018060a01b0316604083015260018060a01b03166060820152825f5260fd602052600360405f2060018060a01b038351166001600160601b0360a01b825416178155600181016001600160801b036020850151166001600160801b03198254161790556002810160018060a01b036040850151166001600160601b0360a01b8254161790550190606060018060a01b03910151166001600160601b0360a01b82541617905560018060a01b031690815f5261010060205260405f208054600160401b811015611eac57610d83818493600161389194018155612f12565b90555f5261010160205260405f20906001600160601b0360a01b825416179055565b945091506080843d6080116138f8575b816138d060809383612ed6565b810103126102f45760208451940151936001600160801b03851685036102f45793915f613794565b3d91506138c3565b60405163313ce56760e01b808252602093909290919084826004816001600160a01b038f165afa918215612b34575f92613a9a575b5060405193845284846004816001600160a01b038e165afa938415612b34575f94613a63575b5015613a3f57606461397a8793613974613981946135c4565b90612f69565b04926135c4565b90610eab57915b82151580613a36575b15613a0257506001600160a01b03916139b5916139b09160c01b612f7c565b61439e565b16813b1561066d57829160248392604051948593849263f637731d60e01b845260048401525af180156101cc576139ee575b808061363b565b6139f88291612e3b565b6101c957806139e7565b6064906040519062461bcd60e51b82526004820152600d60248201526c496e76616c696420707269636560981b6044820152fd5b50811515613991565b6064919550613a50613a5c916135c4565b956139745f97946135c4565b0491613988565b9093508481813d8311613a93575b613a7b8183612ed6565b810103126102f457613a8c90612f9a565b925f61395b565b503d613a71565b9091508481813d8311613aca575b613ab28183612ed6565b810103126102f457613ac390612f9a565b905f613935565b503d613aa8565b613af3915060e03d60e011613aff575b613aeb8183612ed6565b810190613557565b5050505050505f61362b565b503d613ae1565b95926001916135f9565b9060020b9060020b0190627fffff198212627fffff831317612ac157565b600291820b910b0390627fffff198212627fffff831317612ac157565b91949392908515613f87576001600160a01b038181169084161015613f7f5791925f5b8015613f7957835b8115613f7357855b6040519360408501908582106001600160401b03831117611eac576040919091525f80865260208601908152600493909260e0929190613bdd906001600160a01b0380821690841610613f6657613bd7620d89e86141f5565b926143dd565b60020b9060020b8181125f14613f5c57875283525b604051633850c7bd831b815293849182906001600160a01b03165afa928315612b345785925f94613f34575b5015613db45750613c3881613c3d93945160020b94613b2e565b614229565b956103e39181838102048303612ac15783613c6681613c6b81613c666103e899613c71976141bc565b6141de565b9a6141bc565b60405197613c7e89612e84565b60018060a01b038716895260018060a01b03861660208a0152610bb860408a015260020b606089015260020b60808801525f60a08801528060c08801525f60e088015202046101008501523061012085015242610140850152608061014061016460018060a01b0360fb5416965f6040519889948593634418b22b60e11b855260018060a01b03815116600486015260018060a01b03602082015116602486015262ffffff6040820151166044860152606081015160020b60648601528781015160020b608486015260a081015160a486015260c081015160c486015260e081015160e486015261010081015161010486015260018060a01b036101208201511661012486015201516101448401525af1918215612b34575f945f936138b357506001600160801b03604051936137aa85612e69565b9250613c3881613dc393613b10565b905160020b956103e39181838102048303612ac15783613c6681613c6b81613c666103e899613df1976141bc565b60405197613dfe89612e84565b60018060a01b038716895260018060a01b03861660208a0152610bb860408a015260020b606089015260020b60808801528060a08801525f60c0880152020460e08501525f6101008501523061012085015242610140850152608061014061016460018060a01b0360fb5416965f6040519889948593634418b22b60e11b855260018060a01b03815116600486015260018060a01b03602082015116602486015262ffffff6040820151166044860152606081015160020b60648601528781015160020b608486015260a081015160a486015260c081015160c486015260e081015160e486015261010081015161010486015260018060a01b036101208201511661012486015201516101448401525af1918215612b34575f945f936138b357506001600160801b03604051936137aa85612e69565b613f4e91945060e03d60e011613aff57613aeb8183612ed6565b50505050509050925f613c1e565b9087528352613bf2565b613bd7620d89e7196141f5565b84613b7e565b84613b76565b926001613b6e565b505050505050565b90815f5260c960205260405f209060018060a01b031690815f5260205260ff60405f205416613fbc575050565b815f5260c960205260405f20815f5260205260405f2060ff19815416905533917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4565b60405163a9059cbb60e01b60208083019182526001600160a01b0394909416602483015260448083019590955293815291929190614041606483612ed6565b60018060a01b031660405191604083018381106001600160401b03821117611eac576040528483527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656483860152516140a3935f91829182855af1611661614e9f565b8051828115918215614113575b50509050156140bc5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b83809293500103126102f4578161412a9101612f5c565b80825f6140b0565b1561413957565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b60020b9060020b908115612f8657627fffff1981145f19831416612ac1570590565b9060020b9060020b02908160020b918203612ac157565b6141fe90614dd0565b8060020b620d89e7198082126142235750620d89e880911361421e575090565b905090565b91505090565b906141fe91614e3d565b803b15614267575f80516020614f6083398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b908151811015612f27570160200190565b604051906142e082612ea0565b602a8252602082016040368237825115612f275760309053815160019060011015612f2757607860218401536029905b8082116143645750506143205790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f8116906010821015612f2757614398916f181899199a1a9b1b9c1cb0b131b232b360811b901a6132d985876142c2565b90614310565b906001808301808411612ac15760011c90835b8483106143bd57505050565b909193506143d4846143cf8184612f7c565b612f4f565b821c91906143b1565b60405163313ce56760e01b808252600494935f9360209385936001600160a01b0393909290841690841686838b81845afa928315612b34575f93614d86575b5060405193845286848b81855afa938415612b34575f94614d4f575b5010614d295761444886916135c4565b90614d16576144588491926135c4565b90614d035761446f916139b091905b60c01b612f7c565b818116919073fffd8963efd1fc6a506488495d951d5263988d2683108061449f5750620d89e89750505050505050565b6401000276a3841115614cf3576401000276a38410159081614ceb575b5015614cc357640100000000600160c01b0390851b169384976001600160801b03861160071b9086821c6001600160401b03811160061b90811c9163ffffffff9b8c841160051b93841c9461ffff8611831b95861c9460ff9586811160031b90811c90600298600f83118a1b92831c936001988960038711811b96871c1196171717171717179060809a8b8310155f14614caf5750607e19820182811161494a571c5b607f1982019182138416614c9c579081859202607f928392828493841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c80029081881c82881c1c80029283891c84891c1c800294858a1c868a1c1c800296878b1c888b1c1c800298898c1c8a8c1c1c80029a8b8d1c8c821c1c8002809d1c8d821c1c8002809e81901c90821c1c80029e8f80911c911c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c6680000000000000169860c71c670100000000000000169760c61c670200000000000000169660c51c670400000000000000169560c41c670800000000000000169460c31c671000000000000000169360c21c672000000000000000169260c11c674000000000000000169160c01c678000000000000000169060401b171717171717171717171717171799693627a301d71055774c859a8b81029b818d051490151715614c76576f028f6481ab7f045a5af012a19d003aa9198b01908b82138416614c895750891d840b996fdb2df09e81959a81455e260799a0632f90898282019283129112908015821691151617614c7657891d840b988a8a0361475057505050505050505050506135c19192506141f5565b989998888b1215614c6f576147648b614dbd565b945b620d89e886820b13614c4957858416810b15614c37576001600160881b036ffffcb933bd6fad37aa2d162d1a5940015b1695818116820b614c0c575b838116820b614be1575b60088116820b614bb6575b60108116820b614b8b575b878116820b614b60575b60408116820b614b35575b828116820b614b0a575b6101008116820b614adf575b6102008116820b614ab4575b6104008116820b614a89575b6108008116820b614a5e575b6110008116820b614a33575b6120008116820b614a08575b6140008116820b6149dd575b6180008116820b6149b2575b620100008116820b614987575b620200008116820b61495d575b620400008116820b614921575b6208000016900b6148e5575b50878a136148b8575b509061489e9392916135c19a9b8316155f146148b35750865b16911c612f4f565b161190506148ac57506141f5565b90506141f5565b614896565b9a9280156148d257929a505f1992909204916135c161487d565b634e487b7160e01b885260128c52602488fd5b6b048a170391f7dc42444e8fa29491949182810292818404149015171561490e571c925f614874565b634e487b7160e01b895260118552602489fd5b956d2216e584f5fa1ea926041bedfe989081810291818304149015171561494a57821c95614868565b634e487b7160e01b8b526011845260248bfd5b956e5d6af8dedb81196699c329225ee6049081810291818304149015171561494a57821c9561485b565b956f09aa508b5b7a84e1c677de54f3e99bc99081810291818304149015171561494a57821c9561484e565b956f31be135f97d08fd981231505542fcfa69081810291818304149015171561494a57821c95614841565b956f70d869a156d2a1b890bb3df62baf32f79081810291818304149015171561494a57821c95614835565b956fa9f746462d870fdf8a65dc1f90e061e59081810291818304149015171561494a57821c95614829565b956fd097f3bdfd2022b8845ad8f792aa58259081810291818304149015171561494a57821c9561481d565b956fe7159475a2c29b7443b29c7fa6e889d99081810291818304149015171561494a57821c95614811565b956ff3392b0822b70005940c7a398e4b70f39081810291818304149015171561494a57821c95614805565b956ff987a7253ac413176f2b074cf7815e549081810291818304149015171561494a57821c956147f9565b956ffcbe86c7900a88aedcffc83b479aa3a49081810291818304149015171561494a57821c956147ed565b956ffe5dee046a99a2a811c461f1969c30539081810291818304149015171561494a57821c956147e1565b956fff2ea16466c96a3843ec78b326b528619081810291818304149015171561494a57821c956147d7565b956fff973b41fa98c081472e6896dfb254c09081810291818304149015171561494a57821c956147cc565b956fffcb9843d60f6159c9db58835c9266449081810291818304149015171561494a57821c956147c2565b956fffe5caca7e10e4e61c3624eaa0941cd09081810291818304149015171561494a57821c956147b7565b956ffff2e50f5f656932ef12357cf3c7fdcc9081810291818304149015171561494a57821c956147ac565b956ffff97272373d413259a46990580e213a9081810291818304149015171561494a57821c956147a2565b6001600160881b03600160801b614796565b60648385896040519262461bcd60e51b84528301526024820152601560fa1b6044820152fd5b8a94614766565b634e487b7160e01b895260118252602489fd5b634e487b7160e01b815260118352602490fd5b634e487b7160e01b8c526011835260248cfd5b905081607f03607f811161494a571b61455f565b60405162461bcd60e51b815280890186905260016024820152602960f91b6044820152606490fd5b90505f6144bc565b50620d89e7199750505050505050565b634e487b7160e01b845260118852602484fd5b634e487b7160e01b865260118852602486fd5b9450614d369192506135c4565b9061446f6139b0614d485f94966135c4565b5f96614467565b9093508681813d8311614d7f575b614d678183612ed6565b810103126102f457614d7890612f9a565b925f614438565b503d614d5d565b9092508681813d8311614db6575b614d9e8183612ed6565b810103126102f457614daf90612f9a565b915f61441c565b503d614d94565b60020b627fffff198114612ac1575f0390565b600281810b91603c83079182900b601e8112614e0857505090603c0190627fffff198212627fffff831317612ac1576135c191613b2e565b601d1913614e1a576135c19250613b2e565b50603b1990910190627fffff198212627fffff831317612ac1576135c191613b2e565b9060029080820b918215612f865783810b8390079283820b919081900580820b8312614e7857505050614e73906135c193613b10565b613b2e565b614e8190614dbd565b900b13614e9257506135c191613b2e565b614e73906135c193613b2e565b3d15614ec9573d90614eb082612ef7565b91614ebe6040519384612ed6565b82523d5f602084013e565b606090565b91929015614f305750815115614ee2575090565b3b15614eeb5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015614f435750805190602001fd5b60405162461bcd60e51b815290819061325f906004830161419256fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212202abae2e53d2211dcd0044263e5a1475870370f4d7c38dc3113cad9e25742abd364736f6c63430008190033