Skip to content

Instantly share code, notes, and snippets.

@PaulRBerg
Last active December 18, 2023 15:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PaulRBerg/bcb35bb94391d0bc0a11d8d1ed43d131 to your computer and use it in GitHub Desktop.
Save PaulRBerg/bcb35bb94391d0bc0a11d8d1ed43d131 to your computer and use it in GitHub Desktop.
Actual bytecode of the SablierV2LockupLinear contract (V2.1 release) on Ethereum Mainnet
0x60a034620003e757601f196001600160401b03601f62004c523881900382810185168601919084831187841017620003ec57808792606094604052833981010312620003e75783516001600160a01b03928382169291839003620003e7576020918287015196858816809803620003e75760400151948516809503620003e7576200008962000402565b90601c82527f5361626c696572205632204c6f636b7570204c696e656172204e46540000000084830152620000bd62000402565b601181527029a0a116ab1916a627a1a5aaa816a624a760791b8582015230608052600080546001600160a01b031990811688178255600180548216909b178b5596817fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf808180a38351858111620003d35760039485548c81811c91168015620003c8575b89821014620003b45790818684931162000361575b508890868311600114620002f8578492620002ec575b505060001982871b1c1916908b1b1784555b8151948511620002d8576004958654998b8b811c9b168015620002cd575b828c1014620002ba57848b1162000271575b869798999a50819487116001146200020a57505093620001fe575b505082871b92600019911b1c19161790555b600a541617600a5560095560405161482f9081620004238239608051816143320152f35b015191503880620001c8565b8883528183208c9890969594939116915b8282106200025757505085116200023c575b50505050811b019055620001da565b01519060f884600019921b161c19169055388080806200022d565b8484015187558c989096019593840193908101906200021b565b87835281832085880160051c81019b838910620002af575b860160051c019a8c905b8c8110620002a3575050620001ad565b848155018c9062000293565b909b508b9062000289565b634e487b7160e01b835260228852602483fd5b9a607f169a6200019b565b634e487b7160e01b81526041600452602490fd5b0151905038806200016b565b908c8e9416918886528a862092865b8c82821062000341575050841162000328575b505050811b0184556200017d565b015160001983891b60f8161c191690553880806200031a565b91929395968291958786015181550195019301908f959493929162000307565b9091508684528884208680850160051c8201928b8610620003aa575b918f91869594930160051c01915b8281106200039b57505062000155565b8681558594508f91016200038b565b925081926200037d565b634e487b7160e01b84526022600452602484fd5b90607f169062000140565b634e487b7160e01b82526041600452602482fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b60408051919082016001600160401b03811183821017620003ec5760405256fe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a714612dd45750806306fdde0314612d12578063081812fc14612cf3578063095ea7b314612b645780631400ecec14612ac45780631c1cdd4c14612a5f5780631e99d56914612a4157806323b872dd14612a1757806339a73c03146129d657806340e58ee514612738578063425d30dd1461271957806342842e0e146126c957806342966c681461253f5780634857501f146124b55780634869e12d1461247a5780635fe3b567146124535780636352211e146124235780636d0cee75146123cd57806370a082311461232457806375829def14612291578063780a82c8146122415780637cad6cd1146121705780637de6b1db14611f905780638659c27014611c6f578063894e9a0d14611a1b5780638bad38dd1461199e5780638f69b993146119025780639067b677146118af57806395d89b41146117a257806396ce143114611683578063a22cb465146115b2578063a2ffb897146111c5578063a6202bf2146110c8578063a80fc07114611076578063ab167ccc14610f3d578063ad35efd414610edb578063b256456914610ebc578063b88d4fde14610e32578063b8a3be6614610dfd578063b971302a14610dae578063bc063e1a14610d8b578063bc2be1be14610d3b578063c156a11d146109c1578063c87b56dd14610887578063cc364f48146107d9578063d4dbd20b14610787578063d511609f1461073b578063d975dfed146106ef578063e985e9c51461069a578063ea5ead1914610674578063eac8f5b81461060b578063f590c176146105e2578063f851a440146105bc5763fdd46d601461027357600080fd5b346105b95760603660031901126105b95760043561028f612f03565b610297613043565b906102a0614328565b6102a9836136d3565b6105a1576102cd83600052600b6020526001600160a01b0360406000205416331490565b90811580610591575b61057257838552602092600584526001600160a01b0391826040882054169380610566575b61054057828116928315610516576001600160801b038084169384156104fe57610324896143ea565b82811686116104ca5750938093926103ca9261038f6103578d9a99988d8c52600b8d52600260408d20015460801c614438565b8c8b52600b8c5261038a600260408d20019182906001600160801b036001600160801b031983549260801b169116179055565b613668565b906103ab818c840151169282604081835116920151169061370a565b16111561049a575b898852600b89526001604089200154169283614384565b82877f40b88e5c41c5a97ffb7b6ef88a0a2d505aa0c634cf8a0275cb236ea7dd87ed4d88604051868152a48233141580610490575b610432575b837ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78688604051908152a180f35b823b1561048c57608484928360405195869485936313375c3b60e01b85528b6004860152336024860152604485015260648401525af1610474575b8080610404565b61047d90612f7f565b61048857823861046d565b8280fd5b8380fd5b50823b15156103ff565b898852600b89526040882060018101600160c81b60ff60c81b1982541617905560ff60f01b1981541690556103b3565b60405163287ecaef60e21b8152600481018b90526001600160801b03928316602482015291166044820152606490fd5b0390fd5b6024896040519063d2aabcd960e01b82526004820152fd5b60046040517fc61a0e9e000000000000000000000000000000000000000000000000000000008152fd5b858360649260405192632dcbf6b960e11b84526004840152336024840152166044820152fd5b508383821614156102fb565b60405163216caf0d60e01b815260048101859052336024820152604490fd5b5061059b84614453565b156102d6565b60248360405190634a5541ef60e01b82526004820152fd5b80fd5b50346105b957806003193601126105b9576001600160a01b036020915416604051908152f35b50346105b95760203660031901126105b9576020610601600435613739565b6040519015158152f35b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d5760016040836001600160a01b039360209552600b855220015416604051908152f35b6024906040519062b8e7e760e51b82526004820152fd5b50346105b95760403660031901126105b957600435610691612f03565b610297826143ea565b50346105b95760403660031901126105b9576106b4612eed565b60406106be612f03565b926001600160a01b0380931681526008602052209116600052602052602060ff604060002054166040519015158152f35b50346105b95760203660031901126105b95760ff6001604060043593848152600b60205220015460d01c161561065d5761072a6020916143ea565b6001600160801b0360405191168152f35b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d5760408260029260209452600b845220015460801c604051908152f35b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d5760036040836001600160801b039360209552600b855220015416604051908152f35b50346105b95760203660031901126105b9576004356107f6613649565b50808252600b60205260ff600160408420015460d01c161561065d578160409160609352600b60205220600181549164ffffffffff918291015460a01c16906040519261084284612fcd565b818160a01c16845260c81c166020830152604082015261088560405180926040908164ffffffffff91828151168552826020820151166020860152015116910152565bf35b50346105b9576020806003193601126109b1576004356108c56108c08260005260056020526001600160a01b0360406000205416151590565b613059565b826001600160a01b03600a5416916044604051809481937fe9dc637500000000000000000000000000000000000000000000000000000000835230600484015260248301525afa9283156109b5578093610934575b5050610930604051928284938452830190612ec8565b0390f35b909192503d8082843e6109478184613005565b82019183818403126109b15780519067ffffffffffffffff8211610488570182601f820112156109b15780519161097d83613027565b9361098b6040519586613005565b8385528584840101116105b95750906109a991848085019101612ea5565b90388061091a565b5080fd5b604051903d90823e3d90fd5b50346105b95760403660031901126105b9576004356109de612f03565b906109e7614328565b808352602091600b835260ff600160408620015460d01c1615610d2457818452600583526001600160a01b03806040862054169081330361057257610a2b846143ea565b906001600160801b0390818316918215938415610a52575b89610a4f8989896132ec565b80f35b610a5a614328565b610a63886136d3565b610d0c57610a8788600052600b6020526001600160a01b0360406000205416331490565b94851580610cfc575b610cdd57888b5260058a528360408c2054169580610cd3575b610caf57861561051657610c9757610ac0886143ea565b8281168511610c67575090610b20610aed8b969594938a8852600b8c52600260408920015460801c614438565b898752600b8b5261038a600260408920019182906001600160801b036001600160801b031983549260801b169116179055565b90610b3c818b840151169282604081835116920151169061370a565b161115610c37575b868452600b8852600160408520015416610b5f828683614384565b84877f40b88e5c41c5a97ffb7b6ef88a0a2d505aa0c634cf8a0275cb236ea7dd87ed4d8a604051868152a48133141580610c2d575b610bd2575b5050507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7610a4f94604051858152a13880808080610a43565b813b156104885782916084839260405194859384926313375c3b60e01b84528b600485015233602485015289604485015260648401525af1610c15575b80610b99565b610c1e90612f7f565b610c29578438610c0f565b8480fd5b50813b1515610b94565b868452600b88526040842060018101600160c81b60ff60c81b1982541617905560ff60f01b198154169055610b44565b60405163287ecaef60e21b8152600481018a90526001600160801b03928316602482015291166044820152606490fd5b6024886040519063d2aabcd960e01b82526004820152fd5b6064898860405191632dcbf6b960e11b835260048301523360248301526044820152fd5b5085871415610aa9565b60405163216caf0d60e01b8152600481018a9052336024820152604490fd5b50610d0689614453565b15610a90565b60248860405190634a5541ef60e01b82526004820152fd5b6024826040519062b8e7e760e51b82526004820152fd5b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d5760408264ffffffffff9260209452600b8452205460a01c16604051908152f35b50346105b957806003193601126105b957602060405167016345785d8a00008152f35b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d576040826001600160a01b039260209452600b8452205416604051908152f35b50346105b95760203660031901126105b95760ff600160406020936004358152600b855220015460d01c166040519015158152f35b50346105b95760803660031901126105b957610e4c612eed565b610e54612f03565b906064359067ffffffffffffffff821161048c573660238301121561048c5781600401359284610e8385613027565b93610e916040519586613005565b85855236602487830101116109b15785610a4f96602460209301838801378501015260443591613177565b50346105b95760203660031901126105b957602061060160043561369c565b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d57610f1490613820565b604051906005811015610f2957602092508152f35b602483634e487b7160e01b81526021600452fd5b50346105b9576101403660031901126105b957610f58614328565b610f60613649565b9064ffffffffff80421680845260c43582811681036110715781018216602085015260e4359081831682036110715701166040830152606435916001600160a01b03918284168094036105b957506084358015158091036110715760a435908115158092036110715760243594848616809603611071576004359585871680970361107157604435906001600160801b038216809203611071576040519761100789612fb0565b8852602088015260408701526060860152608085015260a084015260c0830152604061010319360112611071576040519161104183612fe9565b61010435918216820361107157826110699260209452610124358482015260e0820152613922565b604051908152f35b600080fd5b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d5760026040836001600160801b039360209552600b855220015416604051908152f35b50346105b95760203660031901126105b9576110e2612eed565b6001600160a01b038083541633810361119c575081169081835260026020526001600160801b0360408420541690811561116b578161113c918486526002602052604086206001600160801b031981541690553390614384565b6040519081527fca7a4a65a94ed2f37538814e00e1cd4c41a78261561e3f3794592f11409cf5af60203392a380f35b602483604051907f8410168c0000000000000000000000000000000000000000000000000000000082526004820152fd5b6040516331b339a960e21b81526001600160a01b03919091166004820152336024820152604490fd5b50346105b95760603660031901126105b95767ffffffffffffffff600435818111610488576111f8903690600401612f4e565b90611201612f03565b92604435908111610c295761121a903690600401612f4e565b611225949194614328565b80840361157b5791926001600160a01b038216159290865b818110611248578780f35b611253818388614412565b359061126081858a614412565b356001600160801b038116810361107157611279614328565b611282836136d3565b6105a1576112a683600052600b6020526001600160a01b0360406000205416331490565b80158061156b575b61057257838b5260056020526001600160a01b0360408c2054169080611558575b61152b5787610516576001600160801b03821615611513576112f0846143ea565b6001600160801b0381166001600160801b038416116114e15750908a91848352600b80602052611360600261038a611331868360408a20015460801c614438565b918988528460205260408820019182906001600160801b036001600160801b031983549260801b169116179055565b6001600160801b03611384816020840151169282604081835116920151169061370a565b1611156114b1575b8584526020526001600160a01b036001604085200154166113b76001600160801b0384168a83614384565b6040516001600160801b0384168152867f40b88e5c41c5a97ffb7b6ef88a0a2d505aa0c634cf8a0275cb236ea7dd87ed4d60206001600160a01b038d1693a480331415806114a7575b61143b575b5050507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce76020600193604051908152a10161123d565b803b15610488576001600160a01b036084898580946001600160801b0360405197889687956313375c3b60e01b87528d60048801523360248801521660448601521660648401525af161148f575b80611405565b61149890612f7f565b6114a3578838611489565b8880fd5b50803b1515611400565b858452806020526040842060018101600160c81b60ff60c81b1982541617905560ff60f01b19815416905561138c565b60405163287ecaef60e21b8152600481018690526001600160801b038481166024830152919091166044820152606490fd5b6024846040519063d2aabcd960e01b82526004820152fd5b6064846001600160a01b038960405192632dcbf6b960e11b84526004840152336024840152166044820152fd5b50806001600160a01b03881614156112cf565b5061157584614453565b156112ae565b83604491604051917faec9344000000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b50346105b95760403660031901126105b9576115cc612eed565b60243590811515809203611071576001600160a01b03169081331461163f5733835260086020526040832082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b606460405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152fd5b50346105b9576101603660031901126105b95761169e614328565b604051906116ab82612fb0565b6116b3612eed565b82526116bd612f03565b60208301526116ca613043565b60408301526001600160a01b03906064358281168103611071576060840152608435801515810361107157608084015260a43580151581036110715760a084015260603660c31901126105b9575060405161172481612fcd565b64ffffffffff60c435818116810361107157825260e435818116810361107157602083015261010435908116810361107157604082015260c0830152604061012319360112611071576040519161177a83612fe9565b61012435918216820361107157826110699260209452610144358482015260e0820152613922565b50346105b957806003193601126105b957604051908060045491600183811c928185169485156118a5575b60209586861081146118915785885287949392918790821561186f575050600114611815575b505061180192500383613005565b610930604051928284938452830190612ec8565b90859250600482527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b858310611857575050611801935082010138806117f3565b8054838901850152879450869390920191810161183f565b925093505061180194915060ff191682840152151560051b82010138806117f3565b602483634e487b7160e01b81526022600452fd5b93607f16936117cd565b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d57600160408364ffffffffff9360209552600b855220015460a01c16604051908152f35b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d5761193b90613820565b906005821015908161197c5760028314918215611990575b8215611967575b6020836040519015158152f35b90915061197c5750600460209114388061195a565b80634e487b7160e01b602492526021600452fd5b506003831491506000611953565b50346105b95760203660031901126105b9576004356001600160a01b0390818116809103610488578183541633810361119c575060015491816001600160a01b03198416176001556040519216825260208201527fdcb09aef4bf01068924ccce937981cbe59d25ba08380cf941aaaea4e4bd3960d60403392a280f35b50346105b95760203660031901126105b957604051611a3981612f93565b8181528160208201528160408201528160608201528160808201528160a08201528160c08201528160e08201528161010082015281610120820152610140611a7f613649565b9101526004358152600b60205260ff600160408320015460d01c1615611c57576004358152600b60205260408120611b58600260405192611abf84612f93565b80546001600160a01b038116855264ffffffffff8160a01c16602086015264ffffffffff8160c81c16604086015260ff8160f01c161515606086015260f81c1515608085015260ff60018201546001600160a01b03811660a087015264ffffffffff8160a01c1660c0870152818160c81c16151560e0870152818160d01c16151561010087015260d81c16151561012085015201613668565b610140820152611b69600435613820565b6005811015610f29579160026101a09314611c4c575b50610885610140604051926001600160a01b03815116845264ffffffffff602082015116602085015264ffffffffff60408201511660408501526060810151151560608501526080810151151560808501526001600160a01b0360a08201511660a085015264ffffffffff60c08201511660c085015260e0810151151560e0850152610100810151151561010085015261012081015115156101208501520151610140830190604090816001600160801b0391828151168552826020820151166020860152015116910152565b606082015238611b7f565b602460405162b8e7e760e51b81526004356004820152fd5b50346105b957602090816003193601126105b95760043567ffffffffffffffff81116109b157611ca483913690600401612f4e565b9190611cae614328565b83925b808410611cbc578480f35b611ccb84828497959697614412565b3594611cd5614328565b611cde866136d3565b15611cfb5760248660405190634a5541ef60e01b82526004820152fd5b611d0486613739565b611f7857611d2886600052600b6020526001600160a01b0360406000205416331490565b15611f5957611d368661376a565b95808552600b90818752611d4f60026040882001613668565b906001600160801b039283835116848b161015611f415781885280895260ff604089205460f01c1615611f2957611d9f8a858b611d9560409a9b9c9d9e8389511661370a565b960151169061370a565b92828a52818b52868a20908b8b7f5edb27d6c1a327513b90a792050debf074b7194444885e3144d4decc5caaaa50845497600160f81b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8a1617865560038a8216968715611f0f575b01998516998a6001600160801b03198254161790556001600160a01b0380991698899360058652818e822054169889965260019d8e912001541694611e4c8b8588614384565b604080518a81526001600160801b0392831660208201529290911690820152606090a47ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce78b604051858152a1813b611eb0575b505050505001919093919293611cb1565b813b15611f0b57899493919285809460849360405197889687956372eba20360e01b875260048701526024860152604485015260648401525af1611ef7575b808080611e9f565b611f0090612f7f565b610c29578487611eef565b8980fd5b60018101600160c81b60ff60c81b19825416179055611e06565b602482604051906339c6dc7360e21b82526004820152fd5b602482604051906322cad1af60e11b82526004820152fd5b60405163216caf0d60e01b815260048101879052336024820152604490fd5b6024866040519063fe19f19f60e01b82526004820152fd5b50346105b9576020806003193601126109b15760043590611faf614328565b818352600b815260ff600160408520015460d01c1615610d2457611fd282613820565b600581101561215c5760048103611ffb5760248360405190634a5541ef60e01b82526004820152fd5b6003810361201b576024836040519063fe19f19f60e01b82526004820152fd5b600214611f415761204282600052600b6020526001600160a01b0360406000205416331490565b1561213d57818352600b815260ff604084205460f01c1615611f2957818352600b81526040832060ff60f01b19815416905582604051837f0eb069207093cd3e51cd1370d2d369770057fbe29947e577e5fb428c6c6fc78f8380a2600583526001600160a01b03604083205416803b6120e5575b5050507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce791604051908152a180f35b803b1561048857816024818580947f341a0bd90000000000000000000000000000000000000000000000000000000083528960048401525af1612129575b806120b6565b61213290612f7f565b610488578238612123565b60405163216caf0d60e01b815260048101839052336024820152604490fd5b602484634e487b7160e01b81526021600452fd5b50346105b95760203660031901126105b9576004356001600160a01b0390818116809103610488578183541633810361119c5750600a5491816001600160a01b0319841617600a556040519216825260208201527fa2548bd4b805e907c1558a47b5858324fe8bb4a2e1ddfca647eecbf65610eebc60403392a2600954600019810190811161222d5760407f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c91815190600182526020820152a180f35b602482634e487b7160e01b81526011600452fd5b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d5760408264ffffffffff9260209452600b8452205460c81c16604051908152f35b50346105b95760203660031901126105b9576122ab612eed565b9080546001600160a01b03808216933385036122fd576001600160a01b03199394501691829116178255337fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf808380a380f35b6040516331b339a960e21b81526001600160a01b0386166004820152336024820152604490fd5b50346105b95760203660031901126105b9576001600160a01b03612346612eed565b168015612363578160409160209352600683522054604051908152f35b608460405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152fd5b50346105b95760203660031901126105b9576001600160a01b0360406020926004356124126108c08260005260056020526001600160a01b0360406000205416151590565b815260058452205416604051908152f35b50346105b95760203660031901126105b95760206124426004356130a4565b6001600160a01b0360405191168152f35b50346105b957806003193601126105b95760206001600160a01b0360015416604051908152f35b50346105b95760203660031901126105b95760ff6001604060043593848152600b60205220015460d01c161561065d5761072a6020916138a7565b50346105b95760203660031901126105b95760043590818152600b60205260ff600160408320015460d01c1615610d2457806124f083613820565b92600584101561252b57600260209403612511575b50506040519015158152f35b8152600b8352604090205460f01c60ff1690503880612505565b602482634e487b7160e01b81526021600452fd5b50346105b95760203660031901126105b95760043561255c614328565b612565816136d3565b156126985761257381614453565b1561267857612581816130a4565b61258a8261369c565b159081612670575b8161265d575b50612645576020816125ca7ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7936130a4565b90808552600783526001600160a01b0360408620926001600160a01b03199384815416905516918286526006845260408620600019815401905581865260058452604086209081541690558085604051937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a48152a180f35b60249060405190630da9b01360e01b82526004820152fd5b6001600160a01b03915016151538612598565b839150612592565b60405163216caf0d60e01b81526004810191909152336024820152604490fd5b602490604051907f817cd6390000000000000000000000000000000000000000000000000000000082526004820152fd5b50346105b9576126d836612f19565b60405191602083019383851067ffffffffffffffff86111761270357610a4f94604052858452613177565b634e487b7160e01b600052604160045260246000fd5b50346105b95760203660031901126105b95760206106016004356136d3565b50346105b9576020806003193601126109b15760043590612757614328565b612760826136d3565b1561277d5760248260405190634a5541ef60e01b82526004820152fd5b9061278781613739565b6129be576127ab81600052600b6020526001600160a01b0360406000205416331490565b15612678576127b98161376a565b818452600b83526127cf60026040862001613668565b926001600160801b03918285511683821610156129a657838652600b825260ff604087205460f01c161561298e5792827ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce783612844878460409761283a8d9b6128ef9b8e511661370a565b9b0151169061370a565b92848852600b825287868120947f5edb27d6c1a327513b90a792050debf074b7194444885e3144d4decc5caaaa50865491600160f81b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84161788556003858216988915612974575b01948d169c858e6001600160801b0319819854161790556001600160a01b038094169b8c94600589526001818e892054169d8e98600b8c5220015416968588614384565b604080518b81526001600160801b0392831660208201529290911690820152606090a4604051848152a1823b612923578480f35b823b15610c2957608492859160405197889687956372eba20360e01b875260048701526024860152604485015260648401525af1612965575b81818080808480f35b61296e90612f7f565b3861295c565b60018101600160c81b60ff60c81b198254161790556128ab565b602484604051906339c6dc7360e21b82526004820152fd5b602484604051906322cad1af60e11b82526004820152fd5b6024906040519063fe19f19f60e01b82526004820152fd5b50346105b95760203660031901126105b9576001600160801b0360406020926001600160a01b03612a05612eed565b16815260028452205416604051908152f35b50346105b957610a4f612a2936612f19565b91612a3c612a37843361320d565b613106565b6132ec565b50346105b957806003193601126105b9576020600954604051908152f35b50346105b95760203660031901126105b957600435808252600b60205260ff600160408420015460d01c161561065d57612a9890613820565b90600582101561197c5760208215838115612ab9575b506040519015158152f35b600191501482612aae565b50346105b95760203660031901126105b95760043590818152600b60205260ff600160408320015460d01c1615610d2457602091604082828152600b85522060ff815460f01c1680612b52575b612b29575b50506001600160801b0360405191168152f35b612b4b92506001600160801b036002612b45920154169161376a565b9061370a565b3880612b16565b5060ff600182015460c81c1615612b11565b50346105b95760403660031901126105b957612b7e612eed565b602435906001600160a01b038080612b95856130a4565b16921691808314612c8957803314908115612c68575b5015612bfe57828452600760205260408420826001600160a01b0319825416179055612bd6836130a4565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258480a480f35b608460405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152fd5b9050845260086020526040842033855260205260ff60408520541638612bab565b608460405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152fd5b50346105b95760203660031901126105b95760206124426004356130c9565b50346105b957806003193601126105b957604051908060035491600183811c92818516948515612dca575b60209586861081146118915785885287949392918790821561186f575050600114612d7057505061180192500383613005565b90859250600382527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b858310612db2575050611801935082010138806117f3565b80548389018501528794508693909201918101612d9a565b93607f1693612d3d565b9050346109b15760203660031901126109b1576004357fffffffff00000000000000000000000000000000000000000000000000000000811680910361048857602092507f80ac58cd000000000000000000000000000000000000000000000000000000008114908115612e7b575b8115612e51575b5015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501438612e4a565b7f5b5e139f0000000000000000000000000000000000000000000000000000000081149150612e43565b60005b838110612eb85750506000910152565b8181015183820152602001612ea8565b90602091612ee181518092818552858086019101612ea5565b601f01601f1916010190565b600435906001600160a01b038216820361107157565b602435906001600160a01b038216820361107157565b6060906003190112611071576001600160a01b0390600435828116810361107157916024359081168103611071579060443590565b9181601f840112156110715782359167ffffffffffffffff8311611071576020808501948460051b01011161107157565b67ffffffffffffffff811161270357604052565b610160810190811067ffffffffffffffff82111761270357604052565b610100810190811067ffffffffffffffff82111761270357604052565b6060810190811067ffffffffffffffff82111761270357604052565b6040810190811067ffffffffffffffff82111761270357604052565b90601f8019910116810190811067ffffffffffffffff82111761270357604052565b67ffffffffffffffff811161270357601f01601f191660200190565b604435906001600160801b038216820361107157565b1561306057565b606460405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152fd5b60005260056020526001600160a01b03604060002054166130c6811515613059565b90565b6130ec6108c08260005260056020526001600160a01b0360406000205416151590565b60005260076020526001600160a01b036040600020541690565b1561310d57565b608460405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152fd5b9061319b93929161318b612a37843361320d565b6131968383836132ec565b6134b7565b156131a257565b60405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608490fd5b906001600160a01b038080613221846130a4565b16931691838314938415613254575b50831561323e575b50505090565b61324a919293506130c9565b1614388080613238565b909350600052600860205260406000208260005260205260ff604060002054169238613230565b1561328257565b608460405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152fd5b9061331592916132fb836130a4565b916001600160a01b0394859384809416968791161461327b565b169081158061341e576133278461369c565b159081613415575b508061340c575b6133f457918084926133767ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79660209661336f856130a4565b161461327b565b60009382855260078652604085206001600160a01b031990818154169055818652600687526040862060001981540190558286526040862060018154019055838652600587528260408720918254161790557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6040519580a48152a1565b60248360405190630da9b01360e01b82526004820152fd5b50831515613336565b9050153861332f565b608460405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152fd5b3d156134b2573d9061349882613027565b916134a66040519384613005565b82523d6000602084013e565b606090565b9290803b1561364057613521916020916001600160a01b0394604051809581948293897f150b7a02000000000000000000000000000000000000000000000000000000009b8c86523360048701521660248501526044840152608060648401526084830190612ec8565b03916000968791165af1908290826135e0575b50506135ba57613542613487565b805190816135b55760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608490fd5b602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000161490565b909192506020813d8211613638575b816135fc60209383613005565b810103126109b15751907fffffffff00000000000000000000000000000000000000000000000000000000821682036105b95750903880613534565b3d91506135ef565b50505050600190565b6040519061365682612fcd565b60006040838281528260208201520152565b9060405161367581612fcd565b6040819360018154916001600160801b0392838116865260801c6020860152015416910152565b80600052600b60205260ff60016040600020015460d01c161561065d57600052600b60205260ff60016040600020015460d81c1690565b80600052600b60205260ff60016040600020015460d01c161561065d57600052600b60205260ff60016040600020015460c81c1690565b6001600160801b03918216908216039190821161372357565b634e487b7160e01b600052601160045260246000fd5b80600052600b60205260ff60016040600020015460d01c161561065d57600052600b60205260406000205460f81c90565b600090808252600b6020526040822091825464ffffffffff42818360c81c16116138185780600186015460a01c169182421015613802576137b79394955060a01c16809103904203614693565b90828152600b6020526001600160801b03926137dd846002604085200154168094614773565b9283116137ea5750501690565b60029350604092508152600b60205220015460801c90565b505050505060026001600160801b039101541690565b505091505090565b80600052600b602052604060002060ff600182015460c81c16600014613847575050600490565b805460f81c6138a0575460a01c64ffffffffff16421061389a5761386a8161376a565b90600052600b6020526001600160801b03806002604060002001541691161060001461389557600190565b600290565b50600090565b5050600390565b80600052600b6020526138c06002604060002001613668565b81600052600b602052604060002060ff600182015460c81c166000146138f357506001600160801b039150602001511690565b5460f81c61390557506130c69061376a565b6130c691506001600160801b03604081835116920151169061370a565b906001600160a01b036001541660206001600160a01b036060850151166024604051809481937fdcf844a700000000000000000000000000000000000000000000000000000000835260048301525afa801561415757600090614123575b6139a391506001600160801b0360408501511690602060e08601510151916144bc565b916001600160801b0383511660c082015190156140f95764ffffffffff815116602082019064ffffffffff825116908181116140b957505064ffffffffff604091511691019064ffffffffff825116908181101561407957505064ffffffffff8042169151169081811015614039575050600954926001600160801b0381511660405190613a3082612fcd565b815260006020820152600060408201526001600160a01b036060840151169060c08401519164ffffffffff6020840151169064ffffffffff604085015116906080870151151560a088015115159364ffffffffff6001600160a01b038a511697511660405197613a9f89612f93565b88526020880152604087015260608601526000608086015260a085015260c0840152600060e0840152600161010084015261012083015261014082015284600052600b60205260406000206001600160a01b038251166001600160a01b0319825416178155613b3664ffffffffff602084015116829064ffffffffff60a01b1964ffffffffff60a01b83549260a01b169116179055565b604082015181547eff0000000000000000000000000000000000000000000000000000000000006060850151151560f01b169078ffffffffffffffffffffffffffffffffffffffffffffffffff7dffffffffff000000000000000000000000000000000000000000000000007fff000000000000000000000000000000000000000000000000000000000000006080880151151560f81b169460c81b1691161717178155600181016001600160a01b0360a0840151166001600160a01b0319825416178155613c2d64ffffffffff60c085015116829064ffffffffff60a01b1964ffffffffff60a01b83549260a01b169116179055565b60e083015181546101008501516101208601517fffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffff90921692151560c81b79ff00000000000000000000000000000000000000000000000000169290921791151560d01b7aff0000000000000000000000000000000000000000000000000000169190911790151560d81b7bff00000000000000000000000000000000000000000000000000000016179055610140909101518051602082015160801b6001600160801b03199081166001600160801b03928316176002850155926040906003019201511682825416179055600185016009556001600160a01b0360608401511660005260026020526001600160801b0380604060002054168160208501511601166001600160a01b036060850151166000526040600020918254161790556001600160a01b036020830151168015613ff557613da8613da28660005260056020526001600160a01b0360406000205416151590565b156142dd565b613db18561369c565b1580613fec575b80613fe4575b613fcc5760207ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce791613e09613da28860005260056020526001600160a01b0360406000205416151590565b806000526006825260406000206001815401905586600052600582526040600020816001600160a01b0319825416179055866040519160007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4868152a1613e996001600160a01b036060840151166001600160801b03808451168160208601511601169030903390614163565b6001600160801b0360408201511680613f9d575b506001600160a01b038251167f075861cbceafeb777e8f15f357121b08f6f3adba387d599bb7b5278ca6192df5610160866001600160a01b0360208701511694613f946001600160a01b03606089015116976080810151151560a0820151151590613f5e6001600160a01b0360e060c08601519501515116956040519788523360208901526040880190604090816001600160801b0391828151168552826020820151166020860152015116910152565b60a086015260c0850152805164ffffffffff90811660e08601526020820151811661010086015260409091015116610120840152565b610140820152a4565b613fc6906001600160a01b036060850151166001600160a01b0360e08601515116903390614163565b38613ead565b60248560405190630da9b01360e01b82526004820152fd5b506000613dbe565b50801515613db8565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b6040517f210aec0e00000000000000000000000000000000000000000000000000000000815264ffffffffff918216600482015291166024820152604490fd5b6040517f9fee269100000000000000000000000000000000000000000000000000000000815264ffffffffff918216600482015291166024820152604490fd5b6040517f4c23297000000000000000000000000000000000000000000000000000000000815264ffffffffff918216600482015291166024820152604490fd5b60046040517f6095d3bc000000000000000000000000000000000000000000000000000000008152fd5b6020823d60201161414f575b8161413c60209383613005565b810103126105b957506139a39051613980565b3d915061412f565b6040513d6000823e3d90fd5b9290604051927f23b872dd0000000000000000000000000000000000000000000000000000000060208501526001600160a01b03809216602485015216604483015260648201526064815260a081019181831067ffffffffffffffff841117612703576141d2926040526141d4565b565b6001600160a01b0316906142346040516141ed81612fe9565b6020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af161422e613487565b916145fb565b8051918215918483156142b9575b50505090501561424f5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b9193818094500103126109b1578201519081151582036105b9575080388084614242565b156142e457565b606460405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361435a57565b60046040517fa1c0d6e5000000000000000000000000000000000000000000000000000000008152fd5b916001600160a01b03604051927fa9059cbb000000000000000000000000000000000000000000000000000000006020850152166024830152604482015260448152608081019181831067ffffffffffffffff841117612703576141d2926040526141d4565b6130c6906143f7816138a7565b90600052600b60205260026040600020015460801c9061370a565b91908110156144225760051b0190565b634e487b7160e01b600052603260045260246000fd5b9190916001600160801b038080941691160191821161372357565b60009080825260056020526001600160a01b038060408420541692833314938415614498575b5050821561448657505090565b90915061449333926130c9565b161490565b60ff9294509060409181526008602052818120338252602052205416913880614479565b9092916144c7613649565b936001600160801b03928381169182156145d35767016345785d8a000080821161459c57808511614565575061451185614502819386614773565b16946020890195865284614773565b169184614528604089019480865282875116614438565b16101561454f5761454184918261454a9551169061370a565b9151169061370a565b168252565b634e487b7160e01b600052600160045260246000fd5b84604491604051917f4fea5c1a00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b60449250604051917f47152d6700000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b505050505090506040516145e681612fcd565b60008152600060208201526000604082015290565b9192901561465c575081511561460f575090565b3b156146185790565b606460405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b82519091501561466f5750805190602001fd5b6104fa9060405191829162461bcd60e51b8352602060048401526024830190612ec8565b670de0b6b3a764000091600019838309928083029283808610950394808603951461474f578285101561471357908291096001821901821680920460028082600302188083028203028083028203028083028203028083028203028083028203028092029003029360018380600003040190848311900302920304170290565b82606492604051927f63a05778000000000000000000000000000000000000000000000000000000008452600484015260248301526044820152fd5b50508092501561475d570490565b634e487b7160e01b600052601260045260246000fd5b9091906000198382098382029182808310920391808303921461481157670de0b6b3a764000090818310156147da57947faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066994950990828211900360ee1b910360121c170290565b60449086604051917f5173648d00000000000000000000000000000000000000000000000000000000835260048301526024820152fd5b5050670de0b6b3a76400009004915056fea164736f6c6343000815000a00000000000000000000000079fb3e81aac012c08501f41296ccc145a1e15844000000000000000000000000c3be6bffaeab7b297c03383b4254aa3af2b9a5ba00000000000000000000000023ed5da55af4286c0de55facb414dee2e317f4cb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment