0 txs
0 calls
constructor
constructor()
functions
aerodromeRouter
viewfunction aerodromeRouter() view returns (address)
getAllUserAccessibleManagers
viewfunction getAllUserAccessibleManagers(address user) view returns (address[])
getAllUserManagedManagers
viewfunction getAllUserManagedManagers(address user) view returns (address[])
getAllUserOwnedManagers
viewfunction getAllUserOwnedManagers(address user) view returns (address[])
getUserManager
viewfunction getUserManager(address user) view returns (address)
isManagerContract
viewfunction isManagerContract(address managerContract) view returns (bool)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
userManagedManagers
viewfunction userManagedManagers(address, uint256) view returns (address)
userManagers
viewfunction userManagers(address) view returns (address)
userOwnedManagers
viewfunction userOwnedManagers(address, uint256) view returns (address)
createManager
nonpayablefunction createManager() returns (address)
initialize
nonpayablefunction initialize(address _aerodromeRouter)
registerManager
nonpayablefunction registerManager(address user, address managerContract)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unregisterManager
nonpayablefunction unregisterManager(address user, address managerContract)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
Initialized
event Initialized(uint64 version)
ManagerCreated
event ManagerCreated(address indexed user, address manager)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
UserBecameManager
event UserBecameManager(address indexed user, address manager)
UserRemovedAsManager
event UserRemovedAsManager(address indexed user, address manager)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346100cc57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100bd57506001600160401b036002600160401b031982821601610078575b604051615dfc90816100d282396080518181816109b30152610a910152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610059565b63f92ee8a960e01b8152600490fd5b600080fdfe608060408181526004908136101561001657600080fd5b600092833560e01c9081631071bb3814610ea757508063498e78b114610c805780634f1ef28614610a1757806352d1902d1461099e578063715018a6146109335780638da5cb5b146108fc578063995dc76e146108a3578063a9088b591461084a578063ad3cb1cc146107ab578063bd583bff1461072d578063c4d66de8146105d4578063c7f8fb9814610599578063db87f4fa1461051c578063e18e3a68146104f4578063e650e1cd14610381578063f2fde38b14610351578063f31f676d146102c6578063f33e690d146102935763fda9c2b2146100f557600080fd5b3461028f578260031936011261028f573383526020926001845260018060a01b039283838320541661024c57825190614b429182810167ffffffffffffffff938282108583111761023957908291620012658339039084f0801561022f5785169483541691853b1561022b5784519263485cc95560e01b8452338385015260248401528383604481838a5af18015610221579186939186936101f4575b5050506101c49233815260018752818120836bffffffffffffffffffffffff60a01b8254161790556002875220611019565b80518281527f9794be21cc98149ec91986dd1a11aeca888fcd5eb920c7ac0efe970022701cdf843392a251908152f35b9193509150821161020e5750825282826101c43880610192565b634e487b7160e01b835260419052602482fd5b85513d86823e3d90fd5b8380fd5b84513d85823e3d90fd5b634e487b7160e01b865260418452602486fd5b825162461bcd60e51b8152908101859052601a60248201527f5573657220616c7265616479206861732061206d616e616765720000000000006044820152606490fd5b8280fd5b8382346102c25760203660031901126102c2576020906102b96102b4610edf565b611107565b90519015158152f35b5080fd5b8382346102c257602090602060031936011261028f576001600160a01b0392836102ee610edf565b16815260036020528181209382519081946020875493848152019684526020842093915b83831061033857610334878761032a828c0383610f10565b5191829182610f92565b0390f35b8454811688529681019660019485019490920191610312565b833461037e57602036600319011261037e5761037b61036e610edf565b610376611186565b611092565b80f35b80fd5b50823461037e576020806003193601126102c2576001600160a01b03806103a6610edf565b169384845260028352808420948151808786829954938481520190885286882092885b888282106104dc575050506103e092500387610f10565b8452600383528084208151808286829454938481520190885286882092885b888282106104c45750505061041692500382610f10565b6104238651825190611043565b9361042d85611066565b9461043a84519687610f10565b808652610449601f1991611066565b01903690860137845b865181101561047c5780846104696001938a61107e565b5116610475828861107e565b5201610452565b5090939492945b81518110156104b757808361049a6001938561107e565b51166104b06104aa838851611043565b8961107e565b5201610483565b8451806103348882610f92565b855489168452600195860195879550930192016103ff565b8554891684526001958601958c9550930192016103c9565b8382346102c257816003193601126102c257905490516001600160a01b039091168152602090f35b8382346102c257602090602060031936011261028f576001600160a01b039283610544610edf565b16815260026020528181209382519081946020875493848152019684526020842093915b83831061058057610334878761032a828c0383610f10565b8454811688529681019660019485019490920191610568565b8382346102c25760203660031901126102c2576020916001600160a01b03908290826105c3610edf565b168152600185522054169051908152f35b50903461028f57602036600319011261028f576105ef610edf565b907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0091825460ff81861c16159267ffffffffffffffff821680159081610725575b600114908161071b575b159081610712575b50610704575067ffffffffffffffff1981166001178455826106e5575b506106686111c0565b6106706111c0565b61067933611092565b6106816111c0565b84546001600160a01b0319166001600160a01b03919091161784556106a4578280f35b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a138808280f35b68ffffffffffffffffff1916680100000000000000011783553861065f565b855163f92ee8a960e01b8152fd5b90501538610642565b303b15915061063a565b859150610630565b8382346102c257806003193601126102c2577ffb2456407f694967c4ca02b5b73dabd141c9a971707d4d0cb500832ccfd35e52602061076a610edf565b610772610efa565b9061078461077f83611107565b610fd7565b60018060a01b0380911694858752600384526107a283828920611019565b5191168152a280f35b50903461028f578260031936011261028f578151908282019082821067ffffffffffffffff8311176108375750825260058152602090640352e302e360dc1b6020820152825193849260208452825192836020860152825b84811061082157505050828201840152601f01601f19168101030190f35b8181018301518882018801528795508201610803565b634e487b7160e01b855260419052602484fd5b8382346102c257806003193601126102c257610864610edf565b6001600160a01b03908116835260026020528183208054602435949085101561037e575060209361089491610f64565b92905490519260031b1c168152f35b8382346102c257806003193601126102c2576108bd610edf565b6001600160a01b03908116835260036020528183208054602435949085101561037e57506020936108ed91610f64565b90549060031b1c169051908152f35b8382346102c257816003193601126102c25760008051602062005da78339815191525490516001600160a01b039091168152602090f35b833461037e578060031936011261037e5761094c611186565b60008051602062005da783398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50823461037e578060031936011261037e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610a0a57602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b508060031936011261028f57610a2b610edf565b90602493843567ffffffffffffffff81116102c257366023820112156102c25780850135610a5881610f48565b94610a6585519687610f10565b81865260209182870193368a8383010111610c7c578186928b8693018737880101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610c4e575b50610c3e57610aca611186565b81169585516352d1902d60e01b815283818a818b5afa869181610c0b575b50610b04575050505050505191634c9c8ce360e01b8352820152fd5b9088888894938c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91828103610bf65750853b15610be2575080546001600160a01b031916821790558451889392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115610bc4575050610bb69582915190845af4913d15610bba573d610ba8610b9f82610f48565b92519283610f10565b81528581943d92013e611201565b5080f35b5060609250611201565b955095505050505034610bd657505080f35b63b398979f60e01b8152fd5b8651634c9c8ce360e01b8152808501849052fd5b8751632a87526960e21b815280860191909152fd5b9091508481813d8311610c37575b610c238183610f10565b81010312610c3357519038610ae8565b8680fd5b503d610c19565b855163703e46dd60e11b81528890fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538610abd565b8580fd5b50903461028f578160031936011261028f57610c9a610edf565b91610ca3610efa565b9062014a3346141580610e9a575b610e89575b84936001600160a01b039081169281169190855b8488526003806020528389208054831015610e7c578591610cec848693610f64565b9054911b1c1614610cff57600101610cca565b5090919293945060015b610d3d575b85847f4eded25de91df1aa08a4f9f092af9db2b2dcca271a4cf3c25ea14408938b37886020868651908152a280f35b838652600390600360205282872090875b825480821015610e4a578683610d648487610f64565b905490881b1c1614610d795750600101610d4e565b919293949596979060001992838101908111610e375790610daf85610da1610dcd9489610f64565b9054908a1b1c169187610f64565b90919060018060a01b038084549260031b9316831b921b1916179055565b8354908115610e2457509160209593917f4eded25de91df1aa08a4f9f092af9db2b2dcca271a4cf3c25ea14408938b37889795930192610e0d8484610f64565b81939154921b1b19169055555b9091849350610d0e565b634e487b7160e01b8a5260319052602489fd5b634e487b7160e01b8b526011835260248bfd5b50505050507f4eded25de91df1aa08a4f9f092af9db2b2dcca271a4cf3c25ea14408938b378892935090602091610e1a565b5050509091929394610d09565b610e9561077f83611107565b610cb6565b5062aa37dc461415610cb1565b9250503461028f57602036600319011261028f576020926001600160a01b03919082610ed1610edf565b168152600185522054168152f35b600435906001600160a01b0382168203610ef557565b600080fd5b602435906001600160a01b0382168203610ef557565b90601f8019910116810190811067ffffffffffffffff821117610f3257604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610f3257601f01601f191660200190565b8054821015610f7c5760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b602090602060408183019282815285518094520193019160005b828110610fba575050505090565b83516001600160a01b031685529381019392810192600101610fac565b15610fde57565b60405162461bcd60e51b81526020600482015260136024820152722737ba1030903b30b634b21036b0b730b3b2b960691b6044820152606490fd5b9081549168010000000000000000831015610f325782610daf91600161104195018155610f64565b565b9190820180921161105057565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff8111610f325760051b60200190565b8051821015610f7c5760209160051b010190565b6001600160a01b039081169081156110ee5760008051602062005da783398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b60405163c45a015560e01b8152906001600160a01b03906020908390600490829085165afa60009281611147575b50611141575050600090565b16301490565b6020939193813d60201161117e575b8161116360209383610f10565b810103126102c2575190828216820361037e57509138611135565b3d9150611156565b60008051602062005da7833981519152546001600160a01b031633036111a857565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156111ef57565b604051631afcd79f60e31b8152600490fd5b90611228575080511561121657805190602001fd5b60405163d6bda27560e01b8152600490fd5b8151158061125b575b611239575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561123156fe60a08060405234620000d157306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c16620000c257506001600160401b036002600160401b0319828216016200007c575b604051614a6b9081620000d78239608051818181610f9f015261125b0152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880806200005c565b63f92ee8a960e01b8152600490fd5b600080fdfe6040608081526004908136101561002b575b505036156100235761002161488c565b005b61002161488c565b600091823560e01c8063067e394514611c38578063117d37e614611c125780631aa81aca14611b80578063232f496514611b335780632d06177a146119e5578063308e401e1461199f57806336d4a20a146117fe5780633aecd0e31461176e5780634612bd4f14611741578063461d7cbc146116735780634782f7791461159e578063485cc9551461141a5780634f1ef286146111e05780634f8632ba146111b757806352cdd4961461100357806352d1902d14610f8a57806358ad387414610f3b5780635e35359e14610e6657806366168bd714610d67578063715018a614610cfc578063760450d714610ccd5780637707887214610ca75780638da5cb5b14610c715780638fcdc75214610c4b5780639872d4fe146109d1578063a7506189146109a3578063ac18de4314610822578063ad3cb1cc146107dd578063b394927c14610785578063bca9f68514610753578063c01498ac146104d3578063c45a0155146104ab578063c45acd2314610482578063cb1b0e3414610454578063d5250681146103c9578063d61ffdd114610334578063e18e3a6814610307578063ef5cfb8c14610295578063f2fde38b14610265578063f3ae24151461023a5763fdff9b4d146101fb5750610011565b346102365760203660031901126102365760209260ff918391906001600160a01b03610225611cb4565b168252855220541690519015158152f35b8280fd5b50346102365760203660031901126102365760209260ff918391906001600160a01b03610225611cb4565b83346102925760203660031901126102925761028f610282611cb4565b61028a614918565b614818565b80f35b80fd5b5034610236576020366003190112610236576020926102e56102ea92846102ba611cb4565b9360018060a01b036000805160206149f6833981519152541633149283156102f3575b505050611e43565b6140c5565b90519015158152f35b60ff935033825288522054168438806102dd565b50503461033057816003193601126103305760025490516001600160a01b039091168152602090f35b5080fd5b50346102365760e0366003190112610236576103a89192610353611cb4565b9161039361035f611cca565b9186610369611ce0565b9460018060a01b036000805160206149f6833981519152541633149283156103b457505050611e43565b60c4359260a435926084359260643592613910565b82519182526020820152f35b60ff93503382526020522054168638806102dd565b5034610236576020366003190112610236576103e3611cb4565b6103eb614918565b6001600160a01b03169182156104185750506bffffffffffffffffffffffff60a01b600254161760025580f35b906020606492519162461bcd60e51b83528201526016602482015275496e76616c696420726f75746572206164647265737360501b6044820152fd5b5050346103305780600319360112610330576020906102ea610474611cb4565b61047c611cca565b90613880565b50503461033057816003193601126103305760035490516001600160a01b039091168152602090f35b505034610330578160031936011261033057905490516001600160a01b039091168152602090f35b50346102365781600319360112610236576104ec611cb4565b6000805160206149f6833981519152546001600160a01b03946024359186163314801561073e575b61051d90611e43565b61053f8684169361052f8515156132ad565b61053a84151561345c565b61382a565b9586169361054e8515156132f0565b61055787613504565b156107055785516370a0823160e01b81523082820152602097908881602481895afa9081156106fb5790859185916106c5575b501061068957865163095ea7b360e01b81526001600160a01b0390911682820190815260208101859052889082908190604001038186895af1801561067f57610652575b50843b1561033057855163b6b55f2560e01b8152908101839052818160248183895af180156106485790879291610630575b50507e8bfa58790ca176ab7c8a54d2fa2a44b1b1c883248e56849845d29a6e944aa4918551908152a35160018152f35b81925061063c90611cef565b61029257808691610600565b86513d84823e3d90fd5b61067190883d8a11610678575b6106698183611d89565b810190612176565b50386105ce565b503d61065f565b87513d85823e3d90fd5b865162461bcd60e51b81528083018990526016602482015275496e73756666696369656e74204c5020746f6b656e7360501b6044820152606490fd5b8092508a8092503d83116106f4575b6106de8183611d89565b810103126106ef578490513861058a565b600080fd5b503d6106d4565b88513d86823e3d90fd5b606490602087519162461bcd60e51b835282015260136024820152724761756765206973206e6f742061637469766560681b6044820152fd5b5033815260208490528481205460ff16610514565b5050346103305760203660031901126103305760209061077461053a611cb4565b90516001600160a01b039091168152f35b505034610330576060366003190112610330576107d9906107bd6107a7611cb4565b6107af611cca565b6107b7611ce0565b9161364b565b9251918252602082015260408101919091529081906060820190565b0390f35b50503461033057816003193601126103305780516107d9916107fe82611d19565b60058252640352e302e360dc1b602083015251918291602083526020830190611e1e565b50346102365760203660031901126102365761083c611cb4565b90610845614918565b6001600160a01b038281168086526020839052848620549093919060ff161561097057908592918484528260205285842060ff1981541690558551947fef69f7d97228658c92417be1b16b19058315de71fecb435d07b7d23728b6bd318580a2835416803b1561096c5763498e78b160e01b85526001600160a01b03909116918401918252306020830152829184919082908490829060400103925af19182610958575b5050610954576019600080516020614a168339815191529161094e61090c61361b565b82519383859485528401527f556e7265676973746572206d616e61676572206661696c6564000000000000006060840152608060208401526080830190611e1e565b0390a180f35b5080f35b61096190611cef565b6102365782386108e9565b8380fd5b845162461bcd60e51b8152602081850152600d60248201526c2737ba10309036b0b730b3b2b960991b6044820152606490fd5b5050346103305780600319360112610330576020906102ea6109c3611cb4565b6109cb611cca565b90613591565b509190346103305760c0366003190112610330578235906001600160a01b03604435818116908190036106ef57606435918083168093036106ef57608435968715158098036106ef578186926000805160206149f6833981519152541633148015610c36575b610a4090611e43565b8060025416610a50811515611e86565b865163095ea7b360e01b81526001600160a01b0390911683820190815260208181019990995288908290819060400103818c895af18015610c2c57918992918392610c0f575b506002541660e48b895194859384926313dcfc5960e01b8452898985015260243560248501528a60448501528b606485015260848401523060a484015260a43560c48401525af1978815610c04578098610b59575b5050865160011015610b445750606086977f9dbb2ce3151d495d487bd63afd1c74999ef4fc70f035600241741f63b0263ab992866107d9989901519087519283528983015286820152a351928284938452830190611dc7565b603290634e487b7160e01b6000525260246000fd5b909197503d8082843e610b6c8184611d89565b820190878383031261029257825167ffffffffffffffff93848211610236570182601f82011215610330578051938411610bef578360051b91885194610bb48b850187611d89565b85528980860193830101938411610292575088809101915b838310610bdf5750505050953880610aeb565b8251815291810191899101610bcc565b60418a634e487b7160e01b6000525260246000fd5b8651903d90823e3d90fd5b610c25908a3d8c11610678576106698183611d89565b5038610a96565b87513d8b823e3d90fd5b5033885260208290528588205460ff16610a37565b505034610330576020366003190112610330576020906102ea610c6c611cb4565b613504565b5050346103305781600319360112610330576000805160206149f68339815191525490516001600160a01b039091168152602090f35b50503461033057602036600319011261033057602090610774610cc8611cb4565b6134a8565b505034610330578160031936011261033057602090517316613524e02ad97edfef371bc883f2f5d6c480a58152f35b8334610292578060031936011261029257610d15614918565b6000805160206149f683398151915280546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b509034610236578060031936011261023657610d81611cb4565b9060243591610d9183151561345c565b81516323b872dd60e01b81523381860152306024820152604481018490526001600160a01b0391909116939060208160648189895af1908115610e5c578691610e3d575b5015610e095750519081527fcbc4a4091b012bb1329c38bbbb15455f5cac5aa3673da0a7f38cd61a4f49551760203392a380f35b6020606492519162461bcd60e51b8352820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152fd5b610e56915060203d602011610678576106698183611d89565b38610dd5565b83513d88823e3d90fd5b509034610236576060366003190112610236576020610ef292610e87611cb4565b610e8f611cca565b6000805160206149f68339815191525487906001600160a01b0390811633148015610f28575b610ebe90611e43565b865163a9059cbb60e01b81526001600160a01b03909316948301948552604435602086015291968794859391849160400190565b0393165af1908115610f1f5750610f07575080f35b6109549060203d602011610678576106698183611d89565b513d84823e3d90fd5b503382528486528682205460ff16610eb5565b5050346103305780600319360112610330576107d990610f6a610f5c611cb4565b610f64611cca565b9061333c565b91516001600160a01b039182168152911660208201529081906040820190565b509134610292578060031936011261029257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610ff657602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b50913461029257816003193601126102925761101d611cb4565b6000805160206149f6833981519152546001600160a01b039460243593918616331480156111a2575b61104f90611e43565b83956110638185169461053a8615156132ad565b16936110708515156132f0565b1561113e575b85156110fb57833b15610330578451632e1a7d4d60e01b8152908101869052818160248183885af180156110f1576110dd575b50507f61131ffd80a30d321524ddfde6ceb003ce05f619e5ff737ffce9b8594fd13837602080958551908152a35160018152f35b6110e78291611cef565b61029257806110a9565b85513d84823e3d90fd5b606490602086519162461bcd60e51b8352820152601760248201527f4e6f204c5020746f6b656e7320746f20756e7374616b650000000000000000006044820152fd5b84516370a0823160e01b81523081830152909550602081602481875afa9081156110f1578291611170575b5094611076565b90506020813d60201161119a575b8161118b60209383611d89565b810103126106ef575138611169565b3d915061117e565b5033825260208190528482205460ff16611046565b50503461033057816003193601126103305760015490516001600160a01b039091168152602090f35b509080600319360112610236576111f5611cb4565b90602493843567ffffffffffffffff8111610330573660238201121561033057808501359361122385611dab565b61122f85519182611d89565b85815260209586820193368a83830101116113d1578186928b8a93018737830101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081163081149081156113ec575b506113dc57611294614918565b85516352d1902d60e01b81529083169680828a818b5afa91829187936113a8575b50506112d15750505050505191634c9c8ce360e01b8352820152fd5b86899689927f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc908181036113935750853b1561137e5780546001600160a01b0319168317905551869392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a28251156113625750506109549382915190845af461135c61361b565b91614992565b9350935050503461137257505080f35b63b398979f60e01b8152fd5b5051634c9c8ce360e01b815291820152859150fd5b848a91845191632a87526960e21b8352820152fd5b9080929350813d83116113d5575b6113c08183611d89565b810103126113d157519038806112b5565b8580fd5b503d6113b6565b855163703e46dd60e11b81528890fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538611287565b5034610236578160031936011261023657611433611cb4565b9061143c611cca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0092835460ff81871c16159367ffffffffffffffff821680159081611596575b600114908161158c575b159081611583575b50611575575067ffffffffffffffff198116600117855583611556575b506114b4614951565b6114bc614951565b6114c581614818565b6114cd614951565b85546001600160a01b0319908116331787556001805482166001600160a01b0393841617905591169081611547575b5050611506578280f35b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a138808280f35b600254161760025538806114fc565b68ffffffffffffffffff191668010000000000000001178455386114ab565b865163f92ee8a960e01b8152fd5b9050153861148e565b303b159150611486565b86915061147c565b50346102365781600319360112610236576001600160a01b03908035828116919082900361166f57602435926000805160206149f683398151915254163314801561165a575b6115ed90611e43565b4783116116205750838080938193828215611617575bf11561160d575080f35b51903d90823e3d90fd5b506108fc611603565b606490602085519162461bcd60e51b83528201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152fd5b5033855260208190528385205460ff166115e4565b8480fd5b5090346102365760603660031901126102365761168e611cb4565b906020611699611cca565b6116a1611ce0565b60025490956001600160a01b039591861691906116bf831515611e86565b6116ec87600354166116d2811515611ed2565b875163874029d960e01b8152998a96879586958601611f3d565b03915afa9283156117375760209493611708575b505191168152f35b611729919350843d8611611730575b6117218183611d89565b810190611f1e565b9138611700565b503d611717565b81513d86823e3d90fd5b50503461033057602036600319011261033057602090611767611762611cb4565b613265565b9051908152f35b50919034610330576020928360031936011261023657836001600160a01b03611795611cb4565b169160248451809481936370a0823160e01b835230908301525afa9283156117f357926117c4575b5051908152f35b9091508281813d83116117ec575b6117dc8183611d89565b810103126106ef575190386117bd565b503d6117d2565b8251903d90823e3d90fd5b508290346103305760603660031901126103305761181a611cb4565b6118a96020611827611cca565b92611830611ce0565b9060018060a01b0394856000805160206149f683398151915254163314801561198c575b61185d90611e43565b85600354169161186e831515611ed2565b89516379bc57d560e01b81526001600160a01b0391821689820190815291909216602082015292151560408401529384928391829160600190565b03915afa908115611982578491611963575b501690811561192f57835163d294f09360e01b81529184918391829086905af19081156119255782916118f6575b5082519182526020820152f35b90506119189150823d841161191e575b6119108183611d89565b810190612117565b836118e9565b503d611906565b83513d84823e3d90fd5b606490602085519162461bcd60e51b8352820152600e60248201526d141bdbdb081b9bdd08199bdd5b9960921b6044820152fd5b61197c915060203d602011611730576117218183611d89565b856118bb565b85513d86823e3d90fd5b503388528684528888205460ff16611854565b505034610330576020366003190112610330576107d9906119c66119c1611cb4565b61317f565b91519081526001600160a01b0390911660208201529081906040820190565b5082903461033057602036600319011261033057611a01611cb4565b611a09614918565b6001600160a01b0381811692908315611af0578385528160205260ff8686205416611ab9578495848695965282602052808520600160ff1982541617905551947f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a8580a283541690813b1561096c5763bd583bff60e01b85526001600160a01b03909216918401918252306020830152839182908490829060400103925af1611ab0575080f35b61028f90611cef565b855162461bcd60e51b8152602081840152601160248201527020b63932b0b23c90309036b0b730b3b2b960791b6044820152606490fd5b855162461bcd60e51b8152602081840152601760248201527f496e76616c6964206d616e6167657220616464726573730000000000000000006044820152606490fd5b8284346102925760603660031901126102925750611b68611b52611cb4565b611b5a611cca565b611b62611ce0565b91612fd7565b82516001600160701b03928316815291166020820152f35b503461023657602036600319011261023657611b9a611cb4565b611ba2614918565b6001600160a01b0316918215611bcf5750506bffffffffffffffffffffffff60a01b600354161760035580f35b906020606492519162461bcd60e51b8352820152601760248201527f496e76616c696420666163746f727920616464726573730000000000000000006044820152fd5b50503461033057602036600319011261033057602090611767611c33611cb4565b612f45565b503461023657610100366003190112610236576107bd906107d993611c5b611cb4565b90611c9b611c67611cca565b9386611c71611ce0565b9360018060a01b036000805160206149f6833981519152541633149283156103b457505050611e43565b60e4359260c4359260a4359260843592606435926121cd565b600435906001600160a01b03821682036106ef57565b602435906001600160a01b03821682036106ef57565b6044359081151582036106ef57565b67ffffffffffffffff8111611d0357604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff821117611d0357604052565b6060810190811067ffffffffffffffff821117611d0357604052565b60a0810190811067ffffffffffffffff821117611d0357604052565b6020810190811067ffffffffffffffff821117611d0357604052565b90601f8019910116810190811067ffffffffffffffff821117611d0357604052565b67ffffffffffffffff8111611d0357601f01601f191660200190565b90815180825260208080930193019160005b828110611de7575050505090565b835185529381019392810192600101611dd9565b60005b838110611e0e5750506000910152565b8181015183820152602001611dfe565b90602091611e3781518092818552858086019101611dfb565b601f01601f1916010190565b15611e4a57565b60405162461bcd60e51b81526020600482015260146024820152732737ba1037bbb732b91037b91036b0b730b3b2b960611b6044820152606490fd5b15611e8d57565b60405162461bcd60e51b815260206004820152601860248201527f4165726f64726f6d6520726f75746572206e6f742073657400000000000000006044820152606490fd5b15611ed957565b60405162461bcd60e51b815260206004820152601960248201527f4165726f64726f6d6520666163746f7279206e6f7420736574000000000000006044820152606490fd5b908160209103126106ef57516001600160a01b03811681036106ef5790565b6001600160a01b039182168152918116602083015291151560408201529116606082015260800190565b906080611f999260408152600a604082015269141bdbdb08199bdd5b9960b21b60608201528160208201520190611e1e565b90565b60009060033d11611fa957565b905060046000803e60005160e01c90565b600060443d10611f9957604051600319913d83016004833e815167ffffffffffffffff918282113d60248401111761201857818401948551938411612020573d850101602084870101116120185750611f9992910160200190611d89565b949350505050565b50949350505050565b906080611f999260408152601960408201527f706f6f6c466f72206661696c65642077697468206572726f720000000000000060608201528160208201520190611e1e565b602181527f706f6f6c466f72206661696c6564207769746820756e6b6e6f776e206572726f6020820152603960f91b604082015260600190565b602090604081526120bb6040820161206e565b9082818303910152600081520190565b156120d257565b60405162461bcd60e51b815260206004820152601d60248201527f4165726f64726f6d6520706f6f6c20646f6573206e6f742065786973740000006044820152606490fd5b91908260409103126106ef576020825192015190565b8181029291811591840414171561214057565b634e487b7160e01b600052601160045260246000fd5b8115612160570490565b634e487b7160e01b600052601260045260246000fd5b908160209103126106ef575180151581036106ef5790565b602681527f6164644c6971756964697479206661696c6564207769746820756e6b6e6f776e6020820152651032b93937b960d11b604082015260600190565b93979592919694909460018060a01b03600254166121ec811515611e86565b6003546001600160a01b0316612203811515611ed2565b604080516001600160a01b0389811660208301528a16918101919091528a151560608201526080810186905260a08082018d9052815267ffffffffffffffff60c0820190811190821117611d035760c080820160408181529052601d6101008301527f6164644c69717569646974794165726f64726f6d652073746172746564000000610120830152608060e0830152600080516020614a16833981519152919060bf19826122b6610140820182611e1e565b03019101a160405163874029d960e01b8152602081806122dc858f8e8e60048601611f3d565b0381865afa60009181612f24575b5061240b576122f7611f9c565b6308c379a014612345575b600080516020614a168339815191526040518061231e816120a8565b0390a160405162461bcd60e51b815260206004820152806123416024820161206e565b0390fd5b61234d611fba565b806123585750612302565b61234190600080516020614a168339815191526123a2604051602080820152612396816123886040820187611e1e565b03601f198101835282611d89565b60405191829182612029565b0390a16123eb603060405180936f03837b7b62337b9103330b4b632b21d160851b60208301526123db8151809260208686019101611dfb565b8101036010810184520182611d89565b60405162461bcd60e51b8152602060048201529182916024830190611e1e565b80600080516020614a1683398151915261244d61246093926040519060018060a01b031660208201526020815261244181611d19565b60405191829182611f67565b0390a16001600160a01b031615156120cb565b6040516370a0823160e01b81523060048201526020816024816001600160a01b038c165afa908115612b6157600091612ef2575b506040516370a0823160e01b81523060048201526020816024816001600160a01b038e165afa908115612b6157600091612eb2575b50600080516020614a1683398151915291612541916040519160208301526040820152604081526124f981611d35565b60405191829160408352601e60408401527f546f6b656e2062616c616e636573206265666f726520617070726f76616c00006060840152608060208401526080830190611e1e565b0390a1604051636eb1769f60e11b81523060048201526001600160a01b038316602482015290602082806044810103816001600160a01b038c165afa918215612b6157600092612e7e575b50604051636eb1769f60e11b81523060048201526001600160a01b0384166024820152602081806044810103816001600160a01b038e165afa908115612b6157600091612e3c575b5090600080516020614a1683398151915261264c61266d9460409485519160208301528582015284815261260781611d35565b84519182918683526017878401527f546f6b656e20616c6c6f77616e636573206265666f72650000000000000000006060840152608060208401526080830190611e1e565b0390a181516323000df760e21b81529283918291908e8d8d60048601611f3d565b0381855afa9081600091600093612e19575b50612cdb5750506020846126d8926001612697611f9c565b6308c379a014612c45575b612bdf575b60405163095ea7b360e01b81526001600160a01b039091166004820152602481019190915291829081906044820190565b038160006001600160a01b038b165af18015612b6157612bc0575b5060025460405163095ea7b360e01b81526001600160a01b039091166004820152602481018a90526020818060448101038160006001600160a01b038c165af18015612b6157612ba1575b50600254604051636eb1769f60e11b81523060048201526001600160a01b0390911660248201819052949092602084806044810103816001600160a01b038b165afa938415612b6157600094612b6d575b50604051636eb1769f60e11b81523060048201526001600160a01b038716602482015293602085806044810103816001600160a01b038d165afa8015612b61578b95600091612b1f575b509260609792600080516020614a1683398151915261285561012498979460009760405191602083015260408201526040815261281581611d35565b6040519182916040835260166040840152752a37b5b2b71030b63637bbb0b731b2b99030b33a32b960511b8e840152608060208401526080830190611e1e565b0390a16040519d8e988997635a47ddc360e01b895260018060a01b038d1660048a01528d60018060a01b031660248a0152151560448901526064880152608487015260a486015260c48501523060e48501526101048401525af1936000928584978597612ad8575b50612a01576128ca611f9c565b6308c379a014612928575b600080516020614a168339815191526040516040815260206128f96040830161218e565b6000838203918284860152520190a160405162461bcd60e51b815260206004820152806123416024820161218e565b612930611fba565b8061293b57506128d5565b61234190600080516020614a168339815191526129b360405160208082015261296b816123886040820187611e1e565b60405191829160408352601e60408401527f6164644c6971756964697479206661696c65642077697468206572726f7200006060840152608060208401526080830190611e1e565b0390a16123eb6035604051809374030b2322634b8bab4b234ba3c903330b4b632b21d1605d1b60208301526129f18151809260208686019101611dfb565b8101036015810184520182611d89565b837f316bf8459750d7b31f9335b761a7a2460a2072993ea64d6f11bf0c450c552c7591600080516020614a16833981519152612aa089612a5f8c61238860405193849289602085016040919493926060820195825260208201520152565b604051918291604083526016604084015275185919131a5c5d5a591a5d1e481cdd58d8d95959195960521b6060840152608060208401526080830190611e1e565b0390a16040805194151585526020850192909252908301889052606083018790526001600160a01b03908116931691608090a3929190565b9491975095506060843d606011612b17575b81612af760609383611d89565b8101031261029257508251956040602085015194015196939695386128bd565b3d9150612aea565b939792955050926020833d602011612b59575b81612b3f60209383611d89565b810103126106ef57915190958a94929390929160606127d9565b3d9150612b32565b6040513d6000823e3d90fd5b9093506020813d602011612b99575b81612b8960209383611d89565b810103126106ef5751923861278f565b3d9150612b7c565b612bb99060203d602011610678576106698183611d89565b503861273e565b612bd89060203d602011610678576106698183611d89565b50386126f3565b600080516020614a1683398151915260c060405160408152602560408201527f6765745265736572766573206661696c6564207769746820756e6b6e6f776e2060608201526432b93937b960d91b608082015260a086820152600060a0820152a16126a7565b612c4d611fba565b80612c59575b506126a2565b9050600080516020614a16833981519152612cd2612388612c8b6000946040519283918a808401526040830190611e1e565b60405191829160408352601d60408401527f6765745265736572766573206661696c65642077697468206572726f7200000060608401526080898401526080830190611e1e565b0390a138612c53565b929550925098612d5393600080516020614a16833981519152612d4b60405185602082015286604082015260408152612d1381611d35565b60405191829160408352600d60408401526c506f6f6c20726573657276657360981b6060840152608060208401526080830190611e1e565b0390a16148ba565b919096879183986050810281810460501482151715612140576064900492856050810204605014861517156121405784602091600080516020614a16833981519152612e116126d895606460508c02049a604051918783015260408201528860608201528a608082015260808152612dca81611d51565b60405191829160408352601a60408401527f43616c63756c61746564206f7074696d616c20616d6f756e747300000000000060608401526080888401526080830190611e1e565b0390a16126a7565b909250612e35915060403d60401161191e576119108183611d89565b913861267f565b9190506020823d602011612e76575b81612e5860209383611d89565b810103126106ef579051600080516020614a168339815191526125d4565b3d9150612e4b565b9091506020813d602011612eaa575b81612e9a60209383611d89565b810103126106ef5751903861258c565b3d9150612e8d565b90506020813d602011612eea575b81612ecd60209383611d89565b810103126106ef5751600080516020614a168339815191526124c9565b3d9150612ec0565b90506020813d602011612f1c575b81612f0d60209383611d89565b810103126106ef575138612494565b3d9150612f00565b612f3e91925060203d602011611730576117218183611d89565b90386122ea565b6001600160a01b0390612f579061382a565b168015612fbd576020602491604051928380926370a0823160e01b82523060048301525afa908115612b6157600091612f8e575090565b90506020813d602011612fb5575b81612fa960209383611d89565b810103126106ef575190565b3d9150612f9c565b50600090565b51906001600160701b03821682036106ef57565b6002546001600160a01b039493929085168015613171579061301a91866003541690604051808095819463874029d960e01b83526020998a978a60048601611f3d565b03915afa60009181613152575b50613039575050509050600090600090565b841693841561314557604051630240bc6b60e21b815290606082600481895afa928360009384956130e9575b506130795750505050509050600090600090565b90600491839580869960405195868092630dfe168160e01b82525afa9384916000956130ca575b50506130af5750505050509190565b81169116036130bf575b50509190565b9350905038806130b9565b6130e1929550803d10611730576117218183611d89565b9238806130a0565b939094506060843d60601161313d575b8161310660609383611d89565b810103126102925761311784612fc3565b906040613125888701612fc3565b95015163ffffffff8116036102925750929338613065565b3d91506130f9565b5050509050600090600090565b61316a919250843d8611611730576117218183611d89565b9038613027565b505050509050600090600090565b6131889061382a565b6001600160a01b03811691908215908115613254575b5061324c576040516246613160e11b8152306004820152602092908381602481855afa908115612b6157849060009261321e575b5060405163f7c618c160e01b81529192829060049082905afa938415612b61576000946131ff5750509190565b613216929450803d10611730576117218183611d89565b9138806130b9565b809250813d8311613245575b6132348183611d89565b810103126106ef57518360046131d2565b503d61322a565b600091508190565b61325e9150613504565b153861319e565b6001600160a01b03906132779061382a565b168015612fbd576020602491604051928380926246613160e11b82523060048301525afa908115612b6157600091612f8e575090565b156132b457565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c696420706f6f6c206164647265737360601b6044820152606490fd5b156132f757565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f20676175676520666f756e6420666f72207468697320706f6f6c000000006044820152606490fd5b6002546001600160a01b039081169392919084158015613450575b6131455760035460405163874029d960e01b8082526001600160a01b03858116600484015286811660248401526001604484015293909216928316606482015290959193602093849391928481608481865afa60009181613431575b5061342b57506000975b6040519081526001600160a01b03918216600482015292811660248401526000604484015294909416606482015292839060849082905afa91829160009361340c575b5050611f995750600090565b613423929350803d10611730576117218183611d89565b903880613400565b976133bd565b613449919250863d8811611730576117218183611d89565b90386133b3565b50806003541615613357565b1561346357565b60405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b6001600160a01b03906134ba9061382a565b168015612fbd5760206004916040519283809263f7c618c160e01b82525afa908115612b61576000916134eb575090565b611f99915060203d602011611730576117218183611d89565b6001600160a01b03168015612fbd5760405190631703e5f960e01b825260048201526020816024817316613524e02ad97edfef371bc883f2f5d6c480a55afa908115612b6157600091613555575090565b611f99915060203d602011610678576106698183611d89565b80511561357b5760200190565b634e487b7160e01b600052603260045260246000fd5b60025460035460405163874029d960e01b81526001600160a01b03938416600482015293831660248501526001604485015282166064840152909190602090829084168180608481015b03915afa600091816135fa575b506135f4575050600090565b16151590565b61361491925060203d602011611730576117218183611d89565b90386135e8565b3d15613646573d9061362c82611dab565b9161363a6040519384611d89565b82523d6000602084013e565b606090565b6003549193926001600160a01b03926136ad929190841661366d811515611ed2565b6040516379bc57d560e01b81526001600160a01b039384166004820152969092166024870152151560448601526020949185918391829081906064820190565b03915afa908115612b615760009161380d575b5016908115613802576040516370a0823160e01b8152306004820152600093849384928281602481855afa600091816137d3575b506137cb575b506040516326ad4fc560e11b81523060048201528281602481855afa6000918161379c575b50613794575b5090806024926040519384809263a1ac4d1360e01b82523060048301525afa918291600093613764575b505061375c575b50929190565b925038613756565b9080929350813d831161378d575b61377c8183611d89565b810103126106ef575190388061374f565b503d613772565b955081613725565b9091508381813d83116137c4575b6137b48183611d89565b810103126106ef5751903861371f565b503d6137aa565b9250386136fa565b9091508381813d83116137fb575b6137eb8183611d89565b810103126106ef575190386136f4565b503d6137e1565b600092508291508190565b6138249150843d8611611730576117218183611d89565b386136c0565b6001600160a01b031661383e8115156132ad565b6040519063b9a09fd560e01b825260048201526020816024817316613524e02ad97edfef371bc883f2f5d6c480a55afa908115612b61576000916134eb575090565b60025460035460405163874029d960e01b81526001600160a01b03938416600482015293831660248501526000604485015282166064840152909190602090829084168180608481016135db565b602981527f72656d6f76654c6971756964697479206661696c6564207769746820756e6b6e60208201526837bbb71032b93937b960b91b604082015260600190565b93909192969560018060a01b036002541661392c811515611e86565b6003546001600160a01b0316613943811515611ed2565b604080516001600160a01b038981166020830152871691810191909152861515606082015260808082018c90528152600080516020614a16833981519152906139d79061398f81611d51565b60405191829160408352602060408401527f72656d6f76654c69717569646974794165726f64726f6d6520737461727465646060840152608060208401526080830190611e1e565b0390a160648a10613fde57906020613a06926040518094819263874029d960e01b83528a8a8d60048601611f3d565b0381845afa60009281613fbd575b50613a21576122f7611f9c565b600080516020614a16833981519152613a52836040519060018060a01b031660208201526020815261244181611d19565b0390a1613a696001600160a01b03831615156120cb565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0387165afa908115612b6157600091613f8b575b50600080516020614a16833981519152613b0160405183602082015260208152613ac681611d19565b60405191829160408352601060408401526f4c5020746f6b656e2062616c616e636560801b6060840152608060208401526080830190611e1e565b0390a18a8110613f08575b508915613ea95760405163095ea7b360e01b81526001600160a01b039182166004820152602481018b905293929160209185916044918391600091165af1928315612b61576000610104928b92604096613e8a575b50600080516020614a16833981519152613bc2875185602082015260208152613b8981611d19565b88519182918a835260118b840152701314081d1bdad95b88185c1c1c9bdd9959607a1b6060840152608060208401526080830190611e1e565b0390a1600254865163037b79b160e21b81526001600160a01b038b8116600483015289811660248301528a151560448301526064820195909552608481019690965260a486019a909a523060c486015260e48501529297889384929091165af19586600095600098613e63575b50613d8557613c3c611f9c565b6308c379a014613c9a575b600080516020614a16833981519152604051604081526020613c6b604083016138ce565b6000838203918284860152520190a160405162461bcd60e51b81526020600482015280612341602482016138ce565b613ca2611fba565b80613cad5750613c47565b61234190600080516020614a16833981519152613d2f604051602080820152613cdd816123886040820187611e1e565b60405191829160408352602160408401527f72656d6f76654c6971756964697479206661696c65642077697468206572726f6060840152603960f91b608084015260a0602084015260a0830190611e1e565b0390a16123eb603860405180937f72656d6f76654c6971756964697479206661696c65643a2000000000000000006020830152613d758151809260208686019101611dfb565b8101036018810184520182611d89565b7ff1c6b4a8d9333d8b05efe1f29dc513e4228b99f31cee9d12247683adbd2004b091613e5c8692600080516020614a16833981519152613e226040518660208201528c604082015260408152613dda81611d35565b60405191829160408352601960408401527f72656d6f76654c697175696469747920737563636565646564000000000000006060840152608060208401526080830190611e1e565b0390a1604080519615158752602087019490945292850189905260608501929092526001600160a01b039081169416929081906080820190565b0390a39190565b909750613e8091955060403d60401161191e576119108183611d89565b9490949638613c2f565b613ea29060203d602011610678576106698183611d89565b5038613b61565b50505050505050509050600080516020614a1683398151915260a06040516040815260166040820152754e6f204c5020746f6b656e7320746f2072656d6f766560501b60608201526080602082015260006080820152a1600090600090565b9099613f81600080516020614a168339815191529160405190846020830152604082015260408152613f3981611d35565b60405191829160408352601d60408401527f496e73756666696369656e74204c5020746f6b656e2062616c616e63650000006060840152608060208401526080830190611e1e565b0390a19838613b0c565b906020823d602011613fb5575b81613fa560209383611d89565b8101031261029257505138613a9d565b3d9150613f98565b613fd791935060203d602011611730576117218183611d89565b9138613a14565b505050505050505090614058600080516020614a16833981519152916040519060208201526020815261401081611d19565b60405191829160408352601a60408401527f4c697175696469747920616d6f756e7420746f6f20736d616c6c0000000000006060840152608060208401526080830190611e1e565b0390a1600090600090565b90815180825260208080930193019160005b828110614083575050505090565b83516001600160a01b031685529381019392810192600101614075565b90916140b7611f9993604084526040840190614063565b916020818403910152611dc7565b6001600160a01b03906000906140e29061053a81851615156132ad565b916140f581841693610c6c8515156132f0565b1561479d5760409081516246613160e11b8152600491308383015260209182816024818a5afa9081156146f3578691614770575b50156146fd57835163f7c618c160e01b815290828285818a5afa9182156146f35786926146d4575b5084516370a0823160e01b8082523086830152918316928482602481875afa91821561446857889261469f575b5086518086018381526001600160a01b03909216602083015294939291906141b390869060400103601f198101875286611d89565b6142038751958887526014898801527342616c616e6365206265666f726520636c61696d60601b6060880152608096878782015280600080516020614a168339815191529384938a830190611e1e565b0390a188958a8683601d8c61429e81519561421d87611d19565b60018752853681890137806142318861356e565b528251907316613524e02ad97edfef371bc883f2f5d6c480a580978301528382015282815261425f81611d35565b82519383859485528401527f417474656d7074696e6720766f7465722e636c61696d526577617264730000006060840152878d84015287830190611e1e565b0390a1803b1561469b576142d1918c9189838d8f519687958694859363f9f031df60e01b85528401526024830190614063565b03925af19081614688575b5061463f5760016142eb611f9c565b6308c379a0146145b5575b61450d575b8615614472575b5050865191825230868301528382602481865afa918215614468578892614439575b5080821161439e575050505015614390575090816143887fc53cb8bc1a7200a84d0b66a538905a245c4915aace7f1ce5dc4a0ba107ebc15c93519161436883611d6d565b83835280519361437785611d6d565b8452600036813751928392836140a0565b0390a2600190565b905163e016b9c560e01b8152fd5b9080939694509897969194980391821161442657507fc53cb8bc1a7200a84d0b66a538905a245c4915aace7f1ce5dc4a0ba107ebc15c9495965090614388918151936143e985611d19565b600185528536818701378251956143ff87611d19565b6001875236818801376144118561356e565b5261441b8561356e565b5251928392836140a0565b634e487b7160e01b815260118852602490fd5b9091508381813d8311614461575b6144518183611d89565b810103126106ef57519038614324565b503d614447565b87513d8a823e3d90fd5b89868c8a8c5180948193631e8c5c8960e11b83525af18b91816144ee575b506144dd575060a0908a8a51918b835260178c8401527f4661696c656420746f20636c61696d207265776172647300000000000000000060608401528089840152820152a15b3880614302565b915050156144d657600194506144d6565b614506919250883d8a11610678576106698183611d89565b9038614490565b8160278a6145ad61451c61361b565b6432b93937b960d91b838c7f566f74657220636c61696d206661696c6564207769746820756e6b6e6f776e2082519161455483611d35565b60258352820152015282519383859485528401527f566f74657220636c61696d206661696c65642077697468206c6f772d6c657665606084015266361032b93937b960c91b8684015260a08b84015260a0830190611e1e565b0390a16142fb565b8a838b6145c0611fba565b92836145d0575b505050506142f6565b601e9293945061463390946145f48c61238885519382859384015286830190611e1e565b82519383859485528401527f566f74657220636c61696d206661696c6564207769746820726561736f6e00006060840152868c84015286830190611e1e565b0390a138838b8d6145c7565b95508060a089518a8152601d8b8201527f566f74657220636c61696d20617474656d707420636f6d706c65746564000000606082015288888201528b89820152a16001956142fb565b614694909b919b611cef565b99386142dc565b8b80fd5b9091508481813d83116146cd575b6146b78183611d89565b810103126146c95751906141b361417e565b8780fd5b503d6146ad565b6146ec919250833d8511611730576117218183611d89565b9038614151565b85513d88823e3d90fd5b50608090614760600080516020614a1683398151915293958551908382015282815261472881611d19565b8551938493878552601488860152734e6f207265776172647320617661696c61626c6560601b60608601528401526080830190611e1e565b0390a15163afb0be3360e01b8152fd5b90508281813d8311614796575b6147878183611d89565b810103126113d1575138614129565b503d61477d565b600080516020614a1683398151915261480384604051906020820152602081526147c681611d19565b6040519182916040835260126040840152714761756765206973206e6f7420616c69766560701b6060840152608060208401526080830190611e1e565b0390a160405163324aced760e01b8152600490fd5b6001600160a01b03908116908115614873576000805160206149f683398151915280546001600160a01b031981168417909155167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b604051631e4fbdf760e01b815260006004820152602490fd5b6040513481527f6c703791f399558807424f489ccd811c72b4ff0b74af547264fad7c646776df060203392a2565b9193929093801580614910575b6130b9576148de816148d9848661212d565b612156565b858111156149085750906148d96148f5928661212d565b9080821161490257509190565b90509190565b945050509190565b5081156148c7565b6000805160206149f6833981519152546001600160a01b0316330361493957565b60405163118cdaa760e01b8152336004820152602490fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561498057565b604051631afcd79f60e31b8152600490fd5b906149b957508051156149a757805190602001fd5b60405163d6bda27560e01b8152600490fd5b815115806149ec575b6149ca575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b156149c256fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993000c1267f8b6a6608f6166ea98ce91e23fe3bf0d92464854249481dd7d07a5d464a26469706673582212205ea24bdaa3b3cb78647737b2472880d2357b04c7d5910037031fe79b8ed57b5d64736f6c634300081600339016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300a2646970667358221220dbc80fa14c84a8d0570d8f938c82b9331e67e8b85dbcb158deb25a45ed5c945464736f6c63430008160033