0 txs
1.9k calls
constructor
No constructor.
functions
acceptCrocProxyRole
purefunction acceptCrocProxyRole(address, uint16 slot) pure returns (bool)
userCmd
payablefunction userCmd(bytes cmd) payable returns (int128 baseFlow, int128 quoteFlow)
events
CrocKnockoutCross
event CrocKnockoutCross(bytes32 indexed pool, int24 indexed tick, bool isBid, uint32 pivotTime, uint64 feeMileage, uint160 commitEntropy)
errors
No errors.
creation bytecode
0x608060405262010011805460ff60e01b1916600160e71b17905534801561002557600080fd5b50614f4d806100356000396000f3fe6080604052600436106100295760003560e01c8063ac54c0fc1461002e578063f96dc78814610063575b600080fd5b34801561003a57600080fd5b5061004e6100493660046147eb565b610090565b60405190151581526020015b60405180910390f35b61007661007136600461482b565b61009f565b60408051600f93840b81529190920b60208201520161005a565b61ffff81166007145b92915050565b6000808080808080808080806100b78c8e018e61494c565b98509850985098509850985098509850985060006100d6898989610135565b905060006100e78260200151610211565b60408051606081018252871515815260028a810b602083015289900b9181019190915290915061011d8c8c8c8686868b8b6102e6565b9d509d505050505050505050505050505b9250929050565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e08301829052610100830182905261012083018290528252602082018190529181019190915261019462010009858585610452565b905061019f81610583565b61020a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f504900000000000000000000000000000000000000000000000000000000000060448201526064015b60405180910390fd5b9392505050565b6040805160a0810182526000808252602082018190529181018290526060810182905260808101919091525060008181526201000f6020908152604091829020825160a08101845281546fffffffffffffffffffffffffffffffff808216808452700100000000000000000000000000000000928390048216958401959095526001909301549283169482019490945292810467ffffffffffffffff908116606085015278010000000000000000000000000000000000000000000000009091041660808301526102e157600080fd5b919050565b6000807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa560ff8b160161032b57610321898989898988610604565b9092509050610438565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa460ff8b16016103635761032189898989898861081a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa360ff8b160161039d576103218760200151878786610a24565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa260ff8b16016103d65761032187602001518685610b37565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f496e76616c696420636f6d6d616e6400000000000000000000000000000000006044820152606401610201565b6104458989848488610b6a565b9850989650505050505050565b60408051610140810182526000606082018181526080830182905260a0830182905260c0830182905260e0830182905261010083018290526101208301829052825260208201819052918101829052906104ad858585610b9c565b600081815260208881526040808320815160e081018352905460ff808216835261ffff6101008304811695840195909552630100000082048116938301939093526401000000008104909316606082015266010000000000008304821660808201526701000000000000008304821660a0820152680100000000000000009092041660c0820181905292935091610545908690610c2a565b60408051606081018252938452602084019490945273ffffffffffffffffffffffffffffffffffffffff16928201929092529150505b949350505050565b805151600090600160ff90911611156105f8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49505300000000000000000000000000000000000000000000000000000000006044820152606401610201565b50515160ff1660011490565b6000806000808480602001905181019061061e9190614aa4565b91509150600061064388600001516fffffffffffffffffffffffffffffffff16610c4e565b9050610650878284610fa1565b6106b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4b4c0000000000000000000000000000000000000000000000000000000000006044820152606401610201565b60006106d78460018b600001518b602001518c604001518d60000151611000565b90506106ef8a8d8d8b602001518c604001518661108a565b61070989838a848e602001518f6000015160a001516111fa565b60208c015191975095506107f7908a60009182526201000f60209081526040928390208251918301516fffffffffffffffffffffffffffffffff9081167001000000000000000000000000000000009081029382169390931782559383015160019091018054606085015160809095015167ffffffffffffffff90811678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff919096169094027fffffffffffffffff00000000000000000000000000000000000000000000000090911692909516919091179390931716179055565b6108078686868b60000151611261565b909d909c509a5050505050505050505050565b6000806000806000858060200190518101906108369190614ad0565b925092509250600061085d89600001516fffffffffffffffffffffffffffffffff16610c4e565b905061086a888284610fa1565b6108d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4b4c0000000000000000000000000000000000000000000000000000000000006044820152606401610201565b6000836108fb576108f68560008c600001518c602001518d604001518e60000151611000565b6108fd565b845b90506109158b8e8e8c602001518d60400151866112cf565b6109268a838b848f6020015161138f565b60208d01519198509650610a14908b60009182526201000f60209081526040928390208251918301516fffffffffffffffffffffffffffffffff9081167001000000000000000000000000000000009081029382169390931782559383015160019091018054606085015160809095015167ffffffffffffffff90811678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff919096169094027fffffffffffffffff00000000000000000000000000000000000000000000000090911692909516919091179390931716179055565b5050505050965096945050505050565b60008060008084806020019051810190610a3e9190614b1a565b91509150610a4f878784848c6113e9565b60008a81526201000f60209081526040918290208b51918c01516fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000009184168202178255928c01516001909101805460608e015160808f0151939094167fffffffffffffffff0000000000000000000000000000000000000000000000009091161767ffffffffffffffff9384169094029390931777ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000092909116919091021790559094509250505094509492505050565b600080600083806020019051810190610b509190614bd7565b9050610b5d858288611432565b9097909650945050505050565b60005473ffffffffffffffffffffffffffffffffffffffff1680610b93818089888a8989611484565b50505050505050565b60008273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1610610bd657600080fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8087166020830152851691810191909152606081018390526080015b6040516020818303038152906040528051906020012090509392505050565b60006001828116811480610c3f576000610c45565b606085901c5b95945050505050565b6000620100026fffffffffffffffffffffffffffffffff831610801590610c9657506f0ffff5433e2b3d8211706e6102aa94726fffffffffffffffffffffffffffffffff8316105b610c9f57600080fd5b77ffffffffffffffffffffffffffffffff0000000000000000604083901b166fffffffffffffffffffffffffffffffff811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110610d4957607f810383901c9150610d53565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc5568101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14610f9257886fffffffffffffffffffffffffffffffff16610f6e826114d9565b6fffffffffffffffffffffffffffffffff161115610f8c5781610f94565b80610f94565b815b9998505050505050505050565b825160009015610fd557600082610fbc578460400151610fc2565b84602001515b90508360020b8160020b1291505061020a565b600082610fe6578460200151610fec565b84604001515b90508360020b8160020b121591505061020a565b60008060006110118787878761184b565b9150915060006110418584846110278e8e6118f0565b6fffffffffffffffffffffffffffffffff169291906119ae565b90508861106857611063816fffffffffffffffffffffffffffffffff16611a28565b61107c565b6ffffffffffffffffffffffffffffff80081165b9a9950505050505050505050565b604086015173ffffffffffffffffffffffffffffffffffffffff16156111f2576040868101516000805492517f2dd148f100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff938416600482015233602482015288841660448201528784166064820152600287810b608483015286900b60a48201526fffffffffffffffffffffffffffffffff851660c4820152909290911690632dd148f19060e4015b6020604051808303816000875af1158015611165573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111899190614bfd565b905080610b93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f5a000000000000000000000000000000000000000000000000000000000000006044820152606401610201565b505050505050565b6000806112298484898b608001518a6112248b6fffffffffffffffffffffffffffffffff16611ad9565b611baf565b50506000806112428a888a602001518b60400151611c0a565b915091506112508282611c4e565b909b909a5098505050505050505050565b6000806000611281856fffffffffffffffffffffffffffffffff16611c92565b9050838015611295575086600f0b81600f0b135b156112a2578096506112be565b831580156112b5575085600f0b81600f0b135b156112be578095505b868692509250505b94509492505050565b604086015173ffffffffffffffffffffffffffffffffffffffff16156111f2576040868101516000805492517f2a179e9b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff938416600482015233602482015288841660448201528784166064820152600287810b608483015286900b60a48201526fffffffffffffffffffffffffffffffff851660c4820152909290911690632a179e9b9060e401611146565b60008060006113bf84888a60800151896113ba8a6fffffffffffffffffffffffffffffffff16611ad9565b611cc6565b925050506000806113db8a88858b602001518c60400151611d1f565b915091506112508282611d4e565b6000806000806113fb85898989611d99565b90925090506d03fffffffffffffffffffffff800600a83901b166000806114248c84868e611dca565b915091506108078282611d4e565b6000806000611442848787611de9565b90506d03fffffffffffffffffffffff800600a82901b16600080611466838a611e0c565b915091506114748282611d4e565b909a909950975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff85166114b5576114b0878786600185161515611e7d565b6114c7565b6114c787878688600186161515611eb9565b610b9387878486600286161515611eb9565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892600283900b128015906115165750620cb14a600283900b13155b61151f57600080fd5b6000808360020b12611534578260020b61153c565b8260020b6000035b905060008160011660000361156257700100000000000000000000000000000000611574565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156115a8576ffff97272373d413259a46990580e213a0260801c5b60048216156115c7576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156115e6576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611605576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611624576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611643576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611662576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611682576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156116a2576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156116c2576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156116e2576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611702576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611722576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611742576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611762576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611783576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156117a3576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156117c2576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156117df576b048a170391f7dc42444e8fa20260801c5b60008460020b131561181e57807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8161181a5761181a614c1a565b0490505b68010000000000000000810615611836576001611839565b60005b60ff16604082901c0192505050919050565b60008061185a8560020b6114d9565b91506118688460020b6114d9565b9050816fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff16116118a55782156118a057600080fd5b6112c6565b806fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff16106118da57826118a057600080fd5b82156118e75750846112c6565b94959350505050565b60006004821561193f57806fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff16106119345761192f8185614c78565b611937565b60005b915050610099565b61195a60046fffffffffffffffffffffffffffffffff614c78565b6fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff161161198e5761192f8185614ca1565b6fffffffffffffffffffffffffffffffff915050610099565b5092915050565b6000836119d9576119d28560016119c486611ee9565b6119cd86611ee9565b6119ae565b905061057b565b6000826fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff1611611a0e57838303611a12565b8284035b9050611a2086600183611f3e565b91505061057b565b60006ffffffffffffffffffffffffffffff8008083169003611aa6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600860248201527f6f766572666c6f770000000000000000000000000000000000000000000000006044820152606401610201565b50600b90811c6e1fffffffffffffffffffffffffffff16600101901b7107fffffffffffffffffffffffffffffff8001690565b6000600a82901c6e3fffffffffffffffffffffffffffff8116906ffffffffffffffffffffffffffffffc0084169060011615808015611b295750846fffffffffffffffffffffffffffffffff1682145b8015611b4057506bffffffffffffffffffffffff83105b611ba6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f46440000000000000000000000000000000000000000000000000000000000006044820152606401610201565b50909392505050565b600080611bbf888886868a611f95565b80925081935050506000611bdf898887602001518860400151888b61219f565b90508115611bf157611bf189866121e7565b611bfe89868684876122a2565b50965096945050505050565b6000806000806000611c228960000151898989612453565b925092509250611c33898983612557565b611c3e838383612581565b9450945050505094509492505050565b600080611c6c846fffffffffffffffffffffffffffffffff16611c92565b611c87846fffffffffffffffffffffffffffffffff16611c92565b915091509250929050565b60006f80000000000000000000000000000000826fffffffffffffffffffffffffffffffff1610611cc257600080fd5b5090565b6000806000611cd68886866125f8565b935091508215611cea57611cea8886612760565b6000611d02898988602001518960400151898c612787565b9050611d1189878784876127e1565b915050955095509592505050565b600080611d2e878786866129db565b9092509050611d408282898989612a29565b909890975095505050505050565b600080611d6c846fffffffffffffffffffffffffffffffff16611c92565b611d7590614cca565b611d90846fffffffffffffffffffffffffffffffff16611c92565b611c8790614cca565b600080600080611dab88888888612ad0565b91509150611dbb88888385612b84565b90999098509650505050505050565b600080611dd78584611e0c565b9092509050610b5d8282888888612a29565b6000611df6848484612c88565b611e038484600085612b84565b50949350505050565b600080600080611e2485602001518660400151612d3c565b8651919350915015611e5457611e4d6fffffffffffffffffffffffffffffffff87168383612db3565b9250611e74565b611e716fffffffffffffffffffffffffffffffff87168383612dfe565b93505b50509250929050565b6000611e87612e46565b905082600f0b600014611ea857611ea385858560008587612f1b565b611eb2565b611eb28482612f5c565b5050505050565b73ffffffffffffffffffffffffffffffffffffffff8216611ed957600080fd5b60006111f2868686868587612f1b565b600080826fffffffffffffffffffffffffffffffff1670010000000000000000000000000000000081611f1e57611f1e614c1a565b0490506fffffffffffffffffffffffffffffffff81111561009957600080fd5b600082611f8857611f836fffffffffffffffffffffffffffffffff8086169084160260401c5b77ffffffffffffffffffffffffffffffffffffffffffffffff16612f90565b61057b565b61057b611f648584612fc9565b60008080611fa38689613012565b6000818152620100036020526040902080546bffffffffffffffffffffffff16159350909150821561209e57611fd7613026565b60008381526201000460205260409020909450611ff390613040565b611ffe87868a613121565b805463ffffffff85166c01000000000000000000000000027fffffffffffffffffffffffffffffffff000000000000000000000000000000009091166bffffffffffffffffffffffff881617178155612056876131cc565b815461ffff91909116700100000000000000000000000000000000027fffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff909116178155612193565b8054869082906000906120c09084906bffffffffffffffffffffffff16614d08565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555080600001600c9054906101000a900463ffffffff16935061210e876131cc565b8154700100000000000000000000000000000000900461ffff908116911614612193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4b520000000000000000000000000000000000000000000000000000000000006044820152606401610201565b50509550959350505050565b60006121ad878787856131f8565b6121b9878786856131f8565b6121c48786856132a3565b6121cf87858561330e565b6121dc8787878786613399565b979650505050505050565b80511561223e5760006121fe8383602001516133c7565b80547fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081166bffffffffffffffffffffffff909116176001179055505050565b600061224e8383604001516133c7565b80547fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff811660016c01000000000000000000000000928390046bffffffffffffffffffffffff1617909102179055505b5050565b6000805485516020808801516040808a015181518085018d905273ffffffffffffffffffffffffffffffffffffffff909616868301529315156060860152600291820b608086015292900b60a084015263ffffffff851660c0808501919091528251808503909101815260e09093019091528151910120600081815262010005602052604081208054929350916123699067ffffffffffffffff878116916bffffffffffffffffffffffff808b16926c01000000000000000000000000830416911661341a565b82549091508690839060009061238e9084906bffffffffffffffffffffffff16614d08565b82546101009290920a6bffffffffffffffffffffffff8181021990931691909216919091021790555081547fffffffffffffffffffffffff0000000000000000ffffffffffffffffffffffff166c0100000000000000000000000067ffffffffffffffff831602178255612400613026565b825463ffffffff9190911674010000000000000000000000000000000000000000027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff9091161790915550505050505050565b60008060008060006124658787612d3c565b91509150816fffffffffffffffffffffffffffffffff16896fffffffffffffffffffffffffffffffff1610156124b9576124b26fffffffffffffffffffffffffffffffff89168383612db3565b935061254b565b806fffffffffffffffffffffffffffffffff16896fffffffffffffffffffffffffffffffff1610612508576125016fffffffffffffffffffffffffffffffff89168383612dfe565b945061254b565b6125256fffffffffffffffffffffffffffffffff89168a83612db3565b93506125446fffffffffffffffffffffffffffffffff8916838b612dfe565b9450600192505b50509450945094915050565b61257c83612576846fffffffffffffffffffffffffffffffff16611c92565b836134cb565b505050565b6000806000856fffffffffffffffffffffffffffffffff1611806125a25750825b6125ad5760006125b8565b6125b8600486614ca1565b6000856fffffffffffffffffffffffffffffffff1611806125d65750835b6125e15760006125ec565b6125ec600486614ca1565b91509150935093915050565b600080600061261486866000015161260f8861350e565b613529565b60008181526201000360205260409020805463ffffffff6c010000000000000000000000008204169550919250906bffffffffffffffffffffffff90811690861611156126bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4b420000000000000000000000000000000000000000000000000000000000006044820152606401610201565b80546bffffffffffffffffffffffff868116911614925082156127055780547fffffffffffffffffffffffffffff000000000000000000000000000000000000168155612756565b8054859082906000906127279084906bffffffffffffffffffffffff16614d2d565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055505b5050935093915050565b8051156127775761229e8260018360200151613554565b61229e8260008360400151613554565b6000806127958887866135f7565b905060006127a48987876136b0565b90506127b38989898988613399565b925081156127c5576127c5898861375f565b80156127d5576127d5898761375f565b50509695505050505050565b6000805485516020808801516040808a015181518085018d905273ffffffffffffffffffffffffffffffffffffffff909616868301529315156060860152600291820b608086015292900b60a084015263ffffffff851660c0808501919091528251808503909101815260e0909301825282519281019290922080845262010005909252822080546128909067ffffffffffffffff878116916c010000000000000000000000009004166137ce565b81549093506128bd9074010000000000000000000000000000000000000000900463ffffffff168961380c565b80546bffffffffffffffffffffffff908116908716111561293a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4b420000000000000000000000000000000000000000000000000000000000006044820152606401610201565b80546bffffffffffffffffffffffff9081169087160361297f5780547fffffffffffffffff0000000000000000000000000000000000000000000000001681556129d0565b8054869082906000906129a19084906bffffffffffffffffffffffff16614d2d565b92506101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055505b505095945050505050565b60008060006129f08760000151878787612453565b91945092509050612a1f87612a166fffffffffffffffffffffffffffffffff8916611c92565b61257690614cca565b5094509492505050565b60008067ffffffffffffffff831615612ac5576000612a7c6fffffffffffffffffffffffffffffffff861667ffffffffffffffff86160260301c71ffffffffffffffffffffffffffffffffffff166138ce565b90506fffffffffffffffffffffffffffffffff811615612ac357600080612aa38884613901565b9092509050612ab2828b614ca1565b9950612abe818a614ca1565b985050505b505b509495939450505050565b6000806000612ae787876000015161260f8961350e565b60008181526201000460209081526040918290208251606081018452815473ffffffffffffffffffffffffffffffffffffffff8116825263ffffffff74010000000000000000000000000000000000000000820481169483019490945267ffffffffffffffff78010000000000000000000000000000000000000000000000009091041693810193909352929350611dbb91908890889061394016565b60008054845160208087015160408089015181518085018c905273ffffffffffffffffffffffffffffffffffffffff909616868301529315156060860152600291820b608086015292900b60a084015263ffffffff851660c0808501919091528251808503909101815260e0909301825282519281019290922080845262010005909252822080546bffffffffffffffffffffffff1692919067ffffffffffffffff861615612c56578054612c53906c01000000000000000000000000900467ffffffffffffffff1687614d52565b92505b80547fffffffffffffffff00000000000000000000000000000000000000000000000016905550909590945092505050565b6000612c9c84846000015161260f8661350e565b6000818152620100046020526040902080549192509063ffffffff80851674010000000000000000000000000000000000000000909204161015611eb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4b410000000000000000000000000000000000000000000000000000000000006044820152606401610201565b6000808360020b8360020b13612d5157600080fd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5d892600285900b1215612d8257600080fd5b620cb14a600284900b1315612d9657600080fd5b612d9f846114d9565b9150612daa836114d9565b90509250929050565b6000826fffffffffffffffffffffffffffffffff16826fffffffffffffffffffffffffffffffff161115612df357612dec84838561396f565b905061020a565b612dec84848461396f565b600080826fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff1611612e3457838303612e38565b8284035b9050610c45858260016139ee565b600080547501000000000000000000000000000000000000000000900460ff1615612ecd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f44530000000000000000000000000000000000000000000000000000000000006044820152606401610201565b612ed634613a3d565b600080547fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff167501000000000000000000000000000000000000000000179055919050565b6000600f85900b1315612f3a57612f358685858585613a5c565b6111f2565b6000600f85900b12156111f2576111f285612f5486614cca565b858585613a8f565b6fffffffffffffffffffffffffffffffff81161561229e5761229e82826fffffffffffffffffffffffffffffffff16613ab7565b806fffffffffffffffffffffffffffffffff811677ffffffffffffffffffffffffffffffffffffffffffffffff8216146102e157600080fd5b60006fffffffffffffffffffffffffffffffff821677ffffffffffffffffffffffffffffffff0000000000000000604085901b168161300a5761300a614c1a565b049392505050565b600061020a82846000015161260f8661350e565b60004263ffffffff8111156102e15763ffffffff91505090565b613048613026565b815463ffffffff91821674010000000000000000000000000000000000000000909104909116036130d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4b540000000000000000000000000000000000000000000000000000000000006044820152606401610201565b805473ffffffffffffffffffffffffffffffffffffffff1660000361311e5780547fffffffffffffffffffffffff00000000000000000000000000000000000000001660011781555b50565b6003600482901c168015801591600f84169160029190911115906040851615159084906131545750613154878483613b81565b80156131665750613166878784610fa1565b610b93576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4b560000000000000000000000000000000000000000000000000000000000006044820152606401610201565b600080826020015183604001516131e39190614d73565b905061ffff62ffffff82161061009957600080fd5b600061320485846133c7565b80549091506bffffffffffffffffffffffff16158015613241575080546c0100000000000000000000000090046bffffffffffffffffffffffff16155b15611eb2578360020b8360020b1261329957805477ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff8416021781555b611eb28584613c09565b60006132af84846133c7565b80549091506bffffffffffffffffffffffff1660006132ce8285613c91565b83547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff91909116179092555050505050565b600061331a84846133c7565b80549091506c0100000000000000000000000090046bffffffffffffffffffffffff1660006133498285613c91565b83546bffffffffffffffffffffffff9091166c01000000000000000000000000027fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff909116179092555050505050565b6000806133a887868886613cb2565b905060006133b888868987613cb2565b91909103979650505050505050565b600062010002600084846040516020016133ee92919091825260e81b602082015260230190565b604051602081830303815290604052805190602001208152602001908152602001600020905092915050565b6000816fffffffffffffffffffffffffffffffff1660000361343d57508361057b565b836fffffffffffffffffffffffffffffffff1660000361345e57508161057b565b8267ffffffffffffffff168567ffffffffffffffff160361348057508361057b565b600061349686866134918682614ca1565b613d39565b905060006134a98585613491818a614ca1565b90506134b6816001614db4565b6134c1836001614db4565b6121dc9190614db4565b801561257c5760408301516134f2906fffffffffffffffffffffffffffffffff1683613d83565b6fffffffffffffffffffffffffffffffff166040840152505050565b8051600090613521578160400151610099565b506020015190565b6000838383604051602001610c0b93929190928352901515602083015260020b604082015260600190565b600061356084836133c7565b905082156135a55780547fffffffffffffffffffffffffffffffffffffffff00000000000000000000000081166bfffffffffffffffffffffffe9091161781556135f1565b80547fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff81166c01000000000000000000000000918290046bfffffffffffffffffffffffe169091021781555b50505050565b60008061360485856133c7565b80549091506bffffffffffffffffffffffff1660006136238286613df0565b83547fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166bffffffffffffffffffffffff82169081178555909150158015613688575082546c0100000000000000000000000090046bffffffffffffffffffffffff16155b156136a3576136978787613dfc565b6001935050505061020a565b5060009695505050505050565b6000806136bd85856133c7565b80549091506c0100000000000000000000000090046bffffffffffffffffffffffff1660006136ec8286613df0565b83547fffffffffffffffff000000000000000000000000ffffffffffffffffffffffff166c010000000000000000000000006bffffffffffffffffffffffff8316908102919091178555909150158015613688575082546bffffffffffffffffffffffff166136a3576136978787613dfc565b620100026000838360405160200161378492919091825260e81b602082015260230190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120835290820192909252016000908120555050565b600060026137dc8184614db4565b67ffffffffffffffff168467ffffffffffffffff16111561193457806138028486614d52565b6119379190614d52565b600a600083613819613026565b6138239190614dd5565b905060006138318383614df2565b905060ff63ffffffff821611611eb25760008481526201000960205260409020546601000000000000900460ff1663ffffffff82161015611eb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4a000000000000000000000000000000000000000000000000000000000000006044820152606401610201565b806fffffffffffffffffffffffffffffffff811671ffffffffffffffffffffffffffffffffffff8216146102e157600080fd5b60008061390e8484613e85565b909250905061012e846139326fffffffffffffffffffffffffffffffff8616611c92565b61393b90614cca565b613edd565b600080825160001461395c57613957858585613f1c565b6125ec565b5050505060208101516040909101519091565b60008061397c8385614c78565b9050600061398a8685612fc9565b77ffffffffffffffffffffffffffffffffffffffffffffffff1690506000856fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff16836139d99190614e15565b6139e39190614e2c565b90506121dc81613a3d565b600061057b82613a2157613a028585612fc9565b77ffffffffffffffffffffffffffffffffffffffffffffffff16613a3d565b6fffffffffffffffffffffffffffffffff8481169086160260401c5b806fffffffffffffffffffffffffffffffff811681146102e157600080fd5b8015613a83576000613a6f868686614065565b9050613a7d86828686614177565b50611eb2565b611eb2858585856141c5565b8015613aab57613aa08585856141f6565b611ea38584846142a8565b611eb2858585856142cd565b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114613b11576040519150601f19603f3d011682016040523d82523d6000602084013e613b16565b606091505b505090508061257c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152606401610201565b60008084602001518560400151613b989190614d73565b604086015190915062ffffff808316600160ff88161b90911614906000600282900b8112613bce57613bc982614e40565b613bd0565b815b90506000861580613bf3575062ffffff80831660ff8a1681811c8316901b909116145b9050838015610f94575098975050505050505050565b6000613c178260020b614310565b60ff166001901b90506000613c2e8360020b61432c565b60ff166001901b905081620100066000613c48878761433a565b81526020019081526020016000206000828254179250508190555080620100076000613c748787614385565b815260208101919091526040016000208054909117905550505050565b8082016bffffffffffffffffffffffff808416908216101561009957600080fd5b600080613cbf86866133c7565b90508360020b8560020b1315613d06578054613d01907801000000000000000000000000000000000000000000000000900467ffffffffffffffff1684614d52565b613d2f565b80547801000000000000000000000000000000000000000000000000900467ffffffffffffffff165b9695505050505050565b6000816fffffffffffffffffffffffffffffffff16836fffffffffffffffffffffffffffffffff168567ffffffffffffffff160281613d7a57613d7a614c1a565b04949350505050565b60008082600f0b1215613dba57508082016fffffffffffffffffffffffffffffffff80841690821610613db557600080fd5b610099565b826fffffffffffffffffffffffffffffffff168284019150816fffffffffffffffffffffffffffffffff16101561009957600080fd5b600061020a8284614d2d565b6000613e0a8260020b614310565b60ff166001901b1990506000613e228360020b61432c565b60ff166001901b1990506000613e388585614385565b6000818152620100076020526040812080548516908190559192508190036111f2576000613e66878761433a565b6000908152620100066020526040902080548616905550505050505050565b6000806000613e988486606001516143b1565b8551909150613ec0906fffffffffffffffffffffffffffffffff80841691160260401c611f64565b9250613ed3611f64828760000151612fc9565b9150509250929050565b6020820151613efe906fffffffffffffffffffffffffffffffff1682613d83565b6fffffffffffffffffffffffffffffffff1660209092019190915250565b60008083815b8451811015613f9b57613f9182868381518110613f4157613f41614e75565b60200260200101516040805173ffffffffffffffffffffffffffffffffffffffff939093166020808501919091528382019290925280518084038201815260609384019091528051910120901c90565b9150600101613f22565b50855173ffffffffffffffffffffffffffffffffffffffff82811691161461401f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4b500000000000000000000000000000000000000000000000000000000000006044820152606401610201565b6140588460008151811061403557614035614e75565b602002602001015163ffffffff604082901c169167ffffffffffffffff90911690565b9250925050935093915050565b6040805173ffffffffffffffffffffffffffffffffffffffff858116602080840191909152908416828401528251808303840181526060909201835281519181019190912060008181526201001090925291812080549192916fffffffffffffffffffffffffffffffff90811690861681111561413d578154869083906000906141029084906fffffffffffffffffffffffffffffffff16614c78565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061416d565b81547fffffffffffffffffffffffffffffffff000000000000000000000000000000001682556121dc8187614c78565b5050509392505050565b6fffffffffffffffffffffffffffffffff8316156141a05761419b848484846141c5565b6135f1565b73ffffffffffffffffffffffffffffffffffffffff82166135f1576135f18482612f5c565b73ffffffffffffffffffffffffffffffffffffffff82166141eb5761419b848483614406565b6135f18484846144ac565b6040805173ffffffffffffffffffffffffffffffffffffffff8581166020808401919091529084168284015282518083038401815260609092018352815191810191909120600081815262010010909252918120805485929061426c9084906fffffffffffffffffffffffffffffffff16614ca1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555050505050565b73ffffffffffffffffffffffffffffffffffffffff821661257c5761257c8382612f5c565b73ffffffffffffffffffffffffffffffffffffffff82166142f35761419b8484836144ca565b6135f18285856fffffffffffffffffffffffffffffffff166144ef565b60006101006143228360020b60081d90565b6100999190614ea4565b600061009961010083614ec6565b600080600283900b60101d9050838160405160200161436692919091825260f81b602082015260210190565b6040516020818303038152906040528051906020012091505092915050565b600080600283900b60081d9050838160405160200161436692919091825260f01b602082015260220190565b600066010000000000006fffffffffffffffffffffffffffffffff80851667ffffffffffffffff851683010290603082901c90811115610c45576fffffffffffffffffffffffffffffffff9350505050610099565b816fffffffffffffffffffffffffffffffff16816fffffffffffffffffffffffffffffffff161015614494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f45430000000000000000000000000000000000000000000000000000000000006044820152606401610201565b60006144a08383614c78565b90506135f18482612f5c565b61257c818430856fffffffffffffffffffffffffffffffff16614658565b61257c836144d88385614ca1565b6fffffffffffffffffffffffffffffffff16613ab7565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916145869190614ee8565b6000604051808303816000865af19150503d80600081146145c3576040519150601f19603f3d011682016040523d82523d6000602084013e6145c8565b606091505b50915091508180156145f25750805115806145f25750808060200190518101906145f29190614bfd565b611eb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152606401610201565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916146f79190614ee8565b6000604051808303816000865af19150503d8060008114614734576040519150601f19603f3d011682016040523d82523d6000602084013e614739565b606091505b50915091508180156147635750805115806147635750808060200190518101906147639190614bfd565b6111f2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152606401610201565b73ffffffffffffffffffffffffffffffffffffffff8116811461311e57600080fd5b600080604083850312156147fe57600080fd5b8235614809816147c9565b9150602083013561ffff8116811461482057600080fd5b809150509250929050565b6000806020838503121561483e57600080fd5b823567ffffffffffffffff8082111561485657600080fd5b818501915085601f83011261486a57600080fd5b81358181111561487957600080fd5b86602082850101111561488b57600080fd5b60209290920196919550909350505050565b803560ff811681146102e157600080fd5b8035600281900b81146102e157600080fd5b801515811461311e57600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614944576149446148ce565b604052919050565b60008060008060008060008060006101208a8c03121561496b57600080fd5b6149748a61489d565b98506020808b0135614985816147c9565b985060408b0135614995816147c9565b975060608b013596506149aa60808c016148ae565b95506149b860a08c016148ae565b945060c08b01356149c8816148c0565b93506149d660e08c0161489d565b92506101008b013567ffffffffffffffff808211156149f457600080fd5b818d0191508d601f830112614a0857600080fd5b813581811115614a1a57614a1a6148ce565b614a4a847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016148fd565b91508082528e84828501011115614a6057600080fd5b80848401858401376000848284010152508093505050509295985092959850929598565b80516fffffffffffffffffffffffffffffffff811681146102e157600080fd5b60008060408385031215614ab757600080fd5b614ac083614a84565b91506020830151614820816148c0565b600080600060608486031215614ae557600080fd5b614aee84614a84565b92506020840151614afe816148c0565b6040850151909250614b0f816148c0565b809150509250925092565b60008060408385031215614b2d57600080fd5b8251614b38816147c9565b8092505060208084015167ffffffffffffffff80821115614b5857600080fd5b818601915086601f830112614b6c57600080fd5b815181811115614b7e57614b7e6148ce565b8060051b9150614b8f8483016148fd565b8181529183018401918481019089841115614ba957600080fd5b938501935b83851015614bc757845182529385019390850190614bae565b8096505050505050509250929050565b600060208284031215614be957600080fd5b815163ffffffff8116811461020a57600080fd5b600060208284031215614c0f57600080fd5b815161020a816148c0565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6fffffffffffffffffffffffffffffffff8281168282160390808211156119a7576119a7614c49565b6fffffffffffffffffffffffffffffffff8181168382160190808211156119a7576119a7614c49565b600081600f0b7fffffffffffffffffffffffffffffffff800000000000000000000000000000008103614cff57614cff614c49565b60000392915050565b6bffffffffffffffffffffffff8181168382160190808211156119a7576119a7614c49565b6bffffffffffffffffffffffff8281168282160390808211156119a7576119a7614c49565b67ffffffffffffffff8281168282160390808211156119a7576119a7614c49565b600282810b9082900b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff8213171561009957610099614c49565b67ffffffffffffffff8181168382160190808211156119a7576119a7614c49565b63ffffffff8281168282160390808211156119a7576119a7614c49565b600063ffffffff80841680614e0957614e09614c1a565b92169190910492915050565b808202811582820484141761009957610099614c49565b600082614e3b57614e3b614c1a565b500490565b60008160020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008103614cff57614cff614c49565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008260010b80614eb757614eb7614c1a565b808360010b0791505092915050565b60008260020b80614ed957614ed9614c1a565b808360020b0791505092915050565b6000825160005b81811015614f095760208186018101518583015201614eef565b50600092019182525091905056fea2646970667358221220f374a2725bcdeffdffb3b329deec8fcf1f24011ac9dd05c4014f5b8238e9532164736f6c63430008130033