60e06040526011805461010061ffff19918216811790925560168054909116909117905534801561002e575f80fd5b506040518060400160405280601a81526020017f4d616b6520416d6572696361204865616c74687920416761696e000000000000815250604051806040016040528060048152602001634d41484160e01b8152508160039081610091919061080c565b50600461009e828261080c565b5050505f6100b061058a60201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610113336b204fce5e3e2502611000000061058e565b5f466001036101375750737a250d5630b4cf539739df2c5dacb4c659f2488d6101a7565b4660050361015a5750737a250d5630b4cf539739df2c5dacb4c659f2488d6101a7565b60405162461bcd60e51b815260206004820152601460248201527f436861696e206e6f7420636f6e6669677572656400000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b03811660a0526103e86101c060025490565b6101cb90600d6108da565b6101d591906108f7565b601480546001600160801b0319166001600160801b03929092169190911790556103e861020160025490565b61020c90600d6108da565b61021691906108f7565b601480546001600160801b03928316600160801b029216919091179055620186a061024060025490565b61024b9060196108da565b61025591906108f7565b601255600a8054336001600160a01b03199182168117909255600b8054821683179055600c80549091169091179055600d80546109c46001600160c01b03199091168117918290556001600160401b036801000000000000000083048116926102c992600160801b90910490911690610916565b6102d39190610916565b600d80546001600160c01b0316600160c01b6001600160401b0393841602179055600e80546109c46001600160c01b031990911681179182905568010000000000000000820483169261032e92600160801b90041690610916565b6103389190610916565b600e80546001600160401b0392909216600160c01b026001600160c01b03909216919091179055600f805460ff60f01b1916600160f01b17905560a051604080516315ab88c960e31b815290516001600160a01b039092169163ad5c4648916004808201926020929091908290030181865afa1580156103ba573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103de9190610935565b6001600160a01b031660c0816001600160a01b03168152505060a0516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610435573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104599190610935565b60c0516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303815f875af11580156104a7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104cb9190610935565b6001600160a01b0390811660808190525f9081526009602090815260408083208054600160ff19918216811790925560078452828520805482168317905533808652838620805483168417905530808752848720805484168517905590865260069094528285208054821683179055838552828520805482168317905560a051958616855291909320805490911690921790915561056a915f19610651565b6105843360a05161057f61064b60201b60201c565b610651565b50610975565b3390565b6001600160a01b0382166105e45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161019e565b8060025f8282546105f59190610962565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60025490565b6001600160a01b0383166106b35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161019e565b6001600160a01b0382166107145760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161019e565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061079c57607f821691505b6020821081036107ba57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561080757805f5260205f20601f840160051c810160208510156107e55750805b601f840160051c820191505b81811015610804575f81556001016107f1565b50505b505050565b81516001600160401b0381111561082557610825610774565b610839816108338454610788565b846107c0565b6020601f82116001811461086b575f83156108545750848201515b5f19600385901b1c1916600184901b178455610804565b5f84815260208120601f198516915b8281101561089a578785015182556020948501946001909201910161087a565b50848210156108b757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176108f1576108f16108c6565b92915050565b5f8261091157634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160401b0381811683821601908111156108f1576108f16108c6565b5f60208284031215610945575f80fd5b81516001600160a01b038116811461095b575f80fd5b9392505050565b808201808211156108f1576108f16108c6565b60805160a05160c0516138506109d75f395f818161093601526130ab01525f81816103f70152818161294d015261310201525f81816105ea01528181611b9d0152818161298a01528181612a4401528181612d8d0152612db401526138505ff3fe60806040526004361061035d575f3560e01c806375808631116101bd578063bedafd01116100f2578063dd62ed3e11610092578063f270fde41161006d578063f270fde414610ad4578063f2fde38b14610b1e578063f5648a4f14610b3d578063f8686f0714610b51575f80fd5b8063dd62ed3e14610a83578063de0ff2e414610aa2578063ea6be44b14610ab6575f80fd5b8063cc1776d3116100cd578063cc1776d3146109f2578063ccad03e114610a30578063d00efb2f14610a4f578063d34628cc14610a64575f80fd5b8063bedafd01146109a5578063c78d0fa0146109c4578063c876d0b9146109d9575f80fd5b80639e93ad8e1161015d578063a9059cbb11610138578063a9059cbb14610906578063ad5c464814610925578063b0249cc614610958578063b4d4fe0214610986575f80fd5b80639e93ad8e1461089b578063a457c2d7146108c8578063a5ece941146108e7575f80fd5b80638becc57d116101985780638becc57d1461081d5780638d3e6e401461083c5780638da5cb5b1461086a57806395d89b4114610887575f80fd5b806375808631146107cc57806385033762146107e0578063860a32ec146107ff575f80fd5b80633ad10ef6116102935780635a90a49e116102335780636d7adcad1161020e5780636d7adcad146106fc57806370a0823114610770578063715018a6146107a4578063751039fc146107b8575f80fd5b80635a90a49e14610696578063627e9d8e146106c457806366ebd39a146106dd575f80fd5b8063432e95a51161026e578063432e95a5146105c4578063452ed4f1146105d95780634f7041a51461060c57806353371be01461067d575f80fd5b80633ad10ef61461055a5780633b7104f2146105795780633bbac5791461058d575f80fd5b80632369bf83116102fe578063313ce567116102d9578063313ce567146104e257806331c2d847146104fd57806336e18e191461051c578063395093511461053b575f80fd5b80632369bf831461048557806323b872dd146104a4578063286965a7146104c3575f80fd5b80630758d924116103395780630758d924146103e6578063095ea7b31461041957806318160ddd146104485780632104591814610466575f80fd5b8062ae3bf814610368578063019b15761461038957806306fdde03146103c5575f80fd5b3661036457005b5f80fd5b348015610373575f80fd5b50610387610382366004613222565b610b65565b005b348015610394575f80fd5b50600c546103a8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156103d0575f80fd5b506103d9610cb6565b6040516103bc9190613242565b3480156103f1575f80fd5b506103a87f000000000000000000000000000000000000000000000000000000000000000081565b348015610424575f80fd5b50610438610433366004613277565b610d46565b60405190151581526020016103bc565b348015610453575f80fd5b506002545b6040519081526020016103bc565b348015610471575f80fd5b5061038761048036600461329f565b610d5f565b348015610490575f80fd5b5061038761049f366004613222565b610eaa565b3480156104af575f80fd5b506104386104be3660046132b6565b610f1c565b3480156104ce575f80fd5b506103876104dd366004613306565b610f3f565b3480156104ed575f80fd5b50604051601281526020016103bc565b348015610508575f80fd5b5061038761051736600461335a565b6110dc565b348015610527575f80fd5b50610387610536366004613422565b611160565b348015610546575f80fd5b50610438610555366004613277565b611278565b348015610565575f80fd5b50600b546103a8906001600160a01b031681565b348015610584575f80fd5b50610387611299565b348015610598575f80fd5b506104386105a7366004613222565b6001600160a01b03165f9081526017602052604090205460ff1690565b3480156105cf575f80fd5b5061045860135481565b3480156105e4575f80fd5b506103a87f000000000000000000000000000000000000000000000000000000000000000081565b348015610617575f80fd5b50600d5461064a906001600160401b0380821691600160401b8104821691600160801b8204811691600160c01b90041684565b604080516001600160401b03958616815293851660208501529184169183019190915290911660608201526080016103bc565b348015610688575f80fd5b506008546104389060ff1681565b3480156106a1575f80fd5b506104386106b0366004613222565b60066020525f908152604090205460ff1681565b3480156106cf575f80fd5b506011546104389060ff1681565b3480156106e8575f80fd5b506103876106f7366004613422565b61131a565b348015610707575f80fd5b50600f5461073b906001600160501b0380821691600160501b8104821691600160a01b82041690600160f01b900460ff1684565b6040516103bc94939291906001600160501b039485168152928416602084015292166040820152901515606082015260800190565b34801561077b575f80fd5b5061045861078a366004613222565b6001600160a01b03165f9081526020819052604090205490565b3480156107af575f80fd5b5061038761142e565b3480156107c3575f80fd5b506103876114a1565b3480156107d7575f80fd5b50610387611541565b3480156107eb575f80fd5b506103876107fa366004613222565b6116e6565b34801561080a575f80fd5b5060115461043890610100900460ff1681565b348015610828575f80fd5b50610387610837366004613306565b611758565b348015610847575f80fd5b50610438610856366004613222565b60076020525f908152604090205460ff1681565b348015610875575f80fd5b506005546001600160a01b03166103a8565b348015610892575f80fd5b506103d96118f5565b3480156108a6575f80fd5b506108b061271081565b6040516001600160401b0390911681526020016103bc565b3480156108d3575f80fd5b506104386108e2366004613277565b611904565b3480156108f2575f80fd5b50600a546103a8906001600160a01b031681565b348015610911575f80fd5b50610438610920366004613277565b61197e565b348015610930575f80fd5b506103a87f000000000000000000000000000000000000000000000000000000000000000081565b348015610963575f80fd5b50610438610972366004613222565b60096020525f908152604090205460ff1681565b348015610991575f80fd5b506103876109a0366004613222565b61198b565b3480156109b0575f80fd5b506103876109bf366004613458565b6119fd565b3480156109cf575f80fd5b5061045860125481565b3480156109e4575f80fd5b506016546104389060ff1681565b3480156109fd575f80fd5b50600e5461064a906001600160401b0380821691600160401b8104821691600160801b8204811691600160c01b90041684565b348015610a3b575f80fd5b50610387610a4a366004613458565b611b27565b348015610a5a575f80fd5b5061045860155481565b348015610a6f575f80fd5b50610387610a7e36600461335a565b611c6c565b348015610a8e575f80fd5b50610458610a9d36600461348d565b611cf1565b348015610aad575f80fd5b50610387611d1b565b348015610ac1575f80fd5b5060165461043890610100900460ff1681565b348015610adf575f80fd5b50601454610afe906001600160801b0380821691600160801b90041682565b604080516001600160801b039384168152929091166020830152016103bc565b348015610b29575f80fd5b50610387610b38366004613222565b611db0565b348015610b48575f80fd5b50610387611e9a565b348015610b5c575f80fd5b50610387611eef565b6001600160a01b038116610bc05760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f74206265203000000000000060448201526064015b60405180910390fd5b600a546001600160a01b0316331480610be35750600b546001600160a01b031633145b610c2f5760405162461bcd60e51b815260206004820152601a60248201527f20796f75277265206e6f74207465616d2066756767206f6666200000000000006044820152606401610bb7565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610c73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9791906134be565b600b54909150610cb29083906001600160a01b031683611f6b565b5050565b606060038054610cc5906134d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf1906134d5565b8015610d3c5780601f10610d1357610100808354040283529160200191610d3c565b820191905f5260205f20905b815481529060010190602001808311610d1f57829003601f168201915b5050505050905090565b5f33610d53818585611fc2565b60019150505b92915050565b6005546001600160a01b03163314610d895760405162461bcd60e51b8152600401610bb79061350d565b620186a0610d9660025490565b610da1906001613556565b610dab9190613581565b811015610e185760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610bb7565b6103e8610e2460025490565b610e2f906005613556565b610e399190613581565b811115610ea55760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610bb7565b601255565b6005546001600160a01b03163314610ed45760405162461bcd60e51b8152600401610bb79061350d565b6001600160a01b038116610efa5760405162461bcd60e51b8152600401610bb790613594565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f33610f298582856120e5565b610f34858585612157565b506001949350505050565b6005546001600160a01b03163314610f695760405162461bcd60e51b8152600401610bb79061350d565b604080516080810182525f60608201526001600160401b03858116825284811692820192909252908216602082015281610fa384866135ba565b610fad91906135ba565b6001600160401b0316606082018190526103e8101580610fe75750600e5460608201516001600160401b03600160c01b9092048216911611155b6110285760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772031302560701b6044820152606401610bb7565b60608101516040516001600160401b0390911681527fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c979060200160405180910390a18051600e8054602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166001600160801b03928216600160401b026001600160801b03199094169190951617919091171691909117919091179055505050565b6005546001600160a01b031633146111065760405162461bcd60e51b8152600401610bb79061350d565b5f5b8151811015610cb2575f60175f848481518110611127576111276135d9565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101611108565b6005546001600160a01b0316331461118a5760405162461bcd60e51b8152600401610bb79061350d565b6111966012600a6136d0565b6103e86111a260025490565b6111ad906001613556565b6111b79190613581565b6111c19190613581565b816001600160801b031610156112035760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610bb7565b61120f6012600a6136d0565b611222906001600160801b038316613556565b601480546001600160801b0319166001600160801b039290921691821790556040519081527f6710da7d4acedae09cb83751ae24c150719ef67dcbc1e02049f171d13c6b44e6906020015b60405180910390a150565b5f33610d5381858561128a8383611cf1565b61129491906136de565b611fc2565b6005546001600160a01b031633146112c35760405162461bcd60e51b8152600401610bb79061350d565b601654610100900460ff16156113095760405162461bcd60e51b815260206004820152600b60248201526a15195ac81a5cc819dbdbd960aa1b6044820152606401610bb7565b6016805461ff001916610100179055565b6005546001600160a01b031633146113445760405162461bcd60e51b8152600401610bb79061350d565b6113506012600a6136d0565b6103e861135c60025490565b611367906001613556565b6113719190613581565b61137b9190613581565b816001600160801b031610156113bd5760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610bb7565b6113c96012600a6136d0565b6113dc906001600160801b038316613556565b601480546001600160801b03908116600160801b93821684021791829055604051929091041681527fde064515fae8f8bb6d8ff19d2c6ba704322def7494147d8a971266430ade07889060200161126d565b6005546001600160a01b031633146114585760405162461bcd60e51b8152600401610bb79061350d565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6005546001600160a01b031633146114cb5760405162461bcd60e51b8152600401610bb79061350d565b6011805461ff0019169055604080518082019091525f80825260208201525f6114f360025490565b6001600160801b03811680845260208401819052600160801b8102176014556040519091507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a15050565b600b546001600160a01b031633146115855760405162461bcd60e51b81526020600482015260076024820152662737ba103232bb60c91b6044820152606401610bb7565b60408051608081018252600d546001600160401b03808216808452600160401b8304821660208501819052600160801b8404831695850195909552600160c01b90920416606083015290919082906115de9083906135ba565b6001600160401b039081169091525f6020848101919091528351600d80546040808801516060808a01519588166001600160c01b031990941693909317600160801b9188168202176001600160c01b0316600160c01b9588168602179093558051608081018252600e54808816808352600160401b820489169783018890529481048816928201929092529390049094169382019390935292509082906116869083906135ba565b6001600160401b039081169091525f60208401528251600e805460408601516060909601519284166001600160c01b031990911617600160801b95841695909502949094176001600160c01b0316600160c01b9190921602179091555050565b6005546001600160a01b031633146117105760405162461bcd60e51b8152600401610bb79061350d565b6001600160a01b0381166117365760405162461bcd60e51b8152600401610bb790613594565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146117825760405162461bcd60e51b8152600401610bb79061350d565b604080516080810182525f60608201526001600160401b038581168252848116928201929092529082166020820152816117bc84866135ba565b6117c691906135ba565b6001600160401b0316606082018190526103e81015806118005750600d5460608201516001600160401b03600160c01b9092048216911611155b6118415760405162461bcd60e51b81526020600482015260126024820152714b656570207461782062656c6f772031302560701b6044820152606401610bb7565b60608101516040516001600160401b0390911681527f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece05089060200160405180910390a18051600d8054602084015160408501516060909501516001600160401b03908116600160c01b026001600160c01b03968216600160801b02969096166001600160801b03928216600160401b026001600160801b03199094169190951617919091171691909117919091179055505050565b606060048054610cc5906134d5565b5f33816119118286611cf1565b9050838110156119715760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610bb7565b610f348286868403611fc2565b5f33610d53818585612157565b6005546001600160a01b031633146119b55760405162461bcd60e51b8152600401610bb79061350d565b6001600160a01b0381166119db5760405162461bcd60e51b8152600401610bb790613594565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314611a275760405162461bcd60e51b8152600401610bb79061350d565b6001600160a01b038216611a6c5760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610bb7565b306001600160a01b03831603611ac45760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420756e6578656d707420636f6e747261637400000000000000006044820152606401610bb7565b6001600160a01b0382165f81815260066020908152604091829020805460ff19168515159081179091558251938452908301527f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d91015b60405180910390a15050565b6005546001600160a01b03163314611b515760405162461bcd60e51b8152600401610bb79061350d565b6001600160a01b038216611b965760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610bb7565b80611c11577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611c115760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb32903830b4b960711b6044820152606401610bb7565b6001600160a01b0382165f81815260076020908152604091829020805460ff19168515159081179091558251938452908301527f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce9101611b1b565b6005546001600160a01b03163314611c965760405162461bcd60e51b8152600401610bb79061350d565b5f5b8151811015610cb257600160175f848481518110611cb857611cb86135d9565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101611c98565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b03163314611d455760405162461bcd60e51b8152600401610bb79061350d565b60085460ff1615611d985760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610bb7565b6008805460ff19166001179055436015819055601355565b6005546001600160a01b03163314611dda5760405162461bcd60e51b8152600401610bb79061350d565b6001600160a01b038116611e3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610bb7565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b600b546040515f916001600160a01b03169047908381818185875af1925050503d805f8114611ee4576040519150601f19603f3d011682016040523d82523d5f602084013e611ee9565b606091505b50505050565b6005546001600160a01b03163314611f195760405162461bcd60e51b8152600401610bb79061350d565b60165460ff16611f5f5760405162461bcd60e51b8152602060048201526011602482015270416c72656164792064697361626c65642160781b6044820152606401610bb7565b6016805460ff19169055565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611fbd908490612282565b505050565b6001600160a01b0383166120245760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610bb7565b6001600160a01b0382166120855760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610bb7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f6120f08484611cf1565b90505f198114611ee9578181101561214a5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610bb7565b611ee98484848403611fc2565b6001600160a01b0383165f9081526006602052604090205460ff1615801561219757506001600160a01b0382165f9081526006602052604090205460ff16155b15612277576001600160a01b0383165f9081526017602052604090205460ff161580156121dc57506001600160a01b0382165f9081526017602052604090205460ff16155b61220e5760405162461bcd60e51b8152602060048201526003602482015262109bdd60ea1b6044820152606401610bb7565b60085460ff166122555760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610bb7565b612260838383612353565b61226a90826136f1565b9050612277838383612748565b611fbd838383612ad7565b5f6122d6826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612c7a9092919063ffffffff16565b805190915015611fbd57808060200190518101906122f49190613704565b611fbd5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610bb7565b601254305f9081526020819052604081205490911115801561238d57506001600160a01b0384165f9081526009602052604090205460ff16155b80156123a757504360135460026123a491906136de565b11155b156123b4576123b4612c90565b604080516080810182525f8082526020808301829052828401829052606083018290526001600160a01b0387168252600990529182205460ff1615612440575060408051608081018252600e546001600160401b038082168352600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201526124a9565b6001600160a01b0386165f9081526009602052604090205460ff16156124a9575060408051608081018252600d546001600160401b038082168352600160401b820481166020840152600160801b8204811693830193909352600160c01b900490911660608201525b60608101516001600160401b0316156127365760408051608081018252600f546001600160501b038082168352600160501b820481166020840152600160a01b82041692820192909252600160f01b90910460ff1615156060820152601554439003612583576001600160a01b0387165f9081526009602052604090205460ff161561254f5761271061253e866103e8613556565b6125489190613581565b92506125ac565b6001600160a01b0386165f9081526009602052604090205460ff161561257e5761271061253e86611388613556565b6125ac565b60608201516127109061259f906001600160401b031687613556565b6125a99190613581565b92505b633b9aca0082606001516001600160401b031683604001516001600160401b0316856125d8919061371f565b6125e29190613748565b6125ec9190613748565b816020018181516125fd9190613775565b6001600160501b031690525060608201518251633b9aca00916001600160401b039081169161262d91168661371f565b6126379190613748565b6126419190613748565b81518290612650908390613775565b6001600160501b031690525060608201516020830151633b9aca00916001600160401b039081169161268391168661371f565b61268d9190613748565b6126979190613748565b816040018181516126a89190613775565b6001600160501b039081169091528251600f80546020860151604087015160608801511515600160f01b0260ff60f01b19918716600160a01b02919091166affffffffffffffffffffff60a01b19928716600160501b026001600160a01b031990941695909616949094179190911716929092171790555061273487306001600160801b038616612ad7565b505b506001600160801b0316949350505050565b601154610100900460ff1615611fbd576001600160a01b038281165f9081526007602090815260408083205483835281842054825180840184526014546001600160801b038082168352600160801b90910416818601529589168552600990935292205460ff9283169391921680156127bf575082155b156128605780516001600160801b03168411156128085760405162461bcd60e51b815260206004820152600760248201526626b0bc102a3c3760c91b6044820152606401610bb7565b60208101516001600160801b031661282083866136de565b111561285b5760405162461bcd60e51b815260206004820152600a60248201526913585e0815d85b1b195d60b21b6044820152606401610bb7565b612940565b6001600160a01b0385165f9081526009602052604090205460ff16801561289f57506001600160a01b0386165f9081526007602052604090205460ff16155b156128e85780516001600160801b031684111561285b5760405162461bcd60e51b815260206004820152600760248201526626b0bc102a3c3760c91b6044820152606401610bb7565b826129405760208101516001600160801b031661290583866136de565b11156129405760405162461bcd60e51b815260206004820152600a60248201526913585e0815d85b1b195d60b21b6044820152606401610bb7565b60165460ff1615612acf577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316141580156129bf57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b15612acf57325f9081526010602052604090205443906129e090600a6136de565b10612a1e5760405162461bcd60e51b815260206004820152600e60248201526d5472616e736665722044656c617960901b6044820152606401610bb7565b6001600160a01b038086165f9081526010602052604080822043908190553283529120557f0000000000000000000000000000000000000000000000000000000000000000811690871603612acf57326001600160a01b03861614612acf5760405162461bcd60e51b815260206004820152602160248201527f6e6f20627579696e6720746f2065787465726e616c2077616c6c6574732079656044820152601d60fa1b6064820152608401610bb7565b505050505050565b6001600160a01b038316612b3b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610bb7565b6001600160a01b038216612b9d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610bb7565b6001600160a01b0383165f9081526020819052604090205481811015612c145760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610bb7565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b6060612c8884845f85612f7f565b949350505050565b305f9081526020819052604081205460408051608081018252600f546001600160501b03808216808452600160501b8304821660208501819052600160a01b8404909216948401859052600160f01b90920460ff161515606084015293945090925f9291612cfd91613775565b612d079190613775565b6001600160501b03169050821580612d1d575080155b15612d2757505050565b601254612d3590600a613556565b831115612d4d57601254612d4a90600a613556565b92505b60208201516001600160501b031615612e45575f8183602001516001600160501b031685612d7b9190613556565b612d859190613581565b9050612db2307f000000000000000000000000000000000000000000000000000000000000000083612ad7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612e0a575f80fd5b505af1925050508015612e1b575060015b50612e2681856136f1565b935082602001516001600160501b031682612e4191906136f1565b9150505b8215612f4357612e5483613056565b604082015147905f906001600160501b031615612ee257600b5460408501516001600160a01b03909116908490612e94906001600160501b031685613556565b612e9e9190613581565b6040515f81818185875af1925050503d805f8114612ed7576040519150601f19603f3d011682016040523d82523d5f602084013e612edc565b606091505b50909150505b4791508115612f4057600a546040516001600160a01b039091169083905f81818185875af1925050503d805f8114612f35576040519150601f19603f3d011682016040523d82523d5f602084013e612f3a565b606091505b50909150505b50505b505f602082018190528082526040820152600f80546060909201511515600160f01b026001600160f81b03199092169190911790555043601355565b606082471015612fe05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610bb7565b5f80866001600160a01b03168587604051612ffb9190613794565b5f6040518083038185875af1925050503d805f8114613035576040519150601f19603f3d011682016040523d82523d5f602084013e61303a565b606091505b509150915061304b8783838761316a565b979650505050505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110613089576130896135d9565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106130dd576130dd6135d9565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac947906131419085905f908690309042906004016137aa565b5f604051808303815f87803b158015613158575f80fd5b505af1158015612acf573d5f803e3d5ffd5b606083156131d85782515f036131d1576001600160a01b0385163b6131d15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bb7565b5081612c88565b612c8883838151156131ed5781518083602001fd5b8060405162461bcd60e51b8152600401610bb79190613242565b80356001600160a01b038116811461321d575f80fd5b919050565b5f60208284031215613232575f80fd5b61323b82613207565b9392505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f8060408385031215613288575f80fd5b61329183613207565b946020939093013593505050565b5f602082840312156132af575f80fd5b5035919050565b5f805f606084860312156132c8575f80fd5b6132d184613207565b92506132df60208501613207565b929592945050506040919091013590565b80356001600160401b038116811461321d575f80fd5b5f805f60608486031215613318575f80fd5b613321846132f0565b925061332f602085016132f0565b915061333d604085016132f0565b90509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f6020828403121561336a575f80fd5b81356001600160401b0381111561337f575f80fd5b8201601f8101841361338f575f80fd5b80356001600160401b038111156133a8576133a8613346565b8060051b604051601f19603f83011681018181106001600160401b03821117156133d4576133d4613346565b6040529182526020818401810192908101878411156133f1575f80fd5b6020850194505b838510156134175761340985613207565b8152602094850194016133f8565b509695505050505050565b5f60208284031215613432575f80fd5b81356001600160801b038116811461323b575f80fd5b8015158114613455575f80fd5b50565b5f8060408385031215613469575f80fd5b61347283613207565b9150602083013561348281613448565b809150509250929050565b5f806040838503121561349e575f80fd5b6134a783613207565b91506134b560208401613207565b90509250929050565b5f602082840312156134ce575f80fd5b5051919050565b600181811c908216806134e957607f821691505b60208210810361350757634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610d5957610d59613542565b634e487b7160e01b5f52601260045260245ffd5b5f8261358f5761358f61356d565b500490565b6020808252600c908201526b7a65726f206164647265737360a01b604082015260600190565b6001600160401b038181168382160190811115610d5957610d59613542565b634e487b7160e01b5f52603260045260245ffd5b6001815b60018411156136285780850481111561360c5761360c613542565b600184161561361a57908102905b60019390931c9280026135f1565b935093915050565b5f8261363e57506001610d59565b8161364a57505f610d59565b8160018114613660576002811461366a57613686565b6001915050610d59565b60ff84111561367b5761367b613542565b50506001821b610d59565b5060208310610133831016604e8410600b84101617156136a9575081810a610d59565b6136b55f1984846135ed565b805f19048211156136c8576136c8613542565b029392505050565b5f61323b60ff841683613630565b80820180821115610d5957610d59613542565b81810381811115610d5957610d59613542565b5f60208284031215613714575f80fd5b815161323b81613448565b6001600160801b03818116838216029081169081811461374157613741613542565b5092915050565b5f6001600160801b038316806137605761376061356d565b806001600160801b0384160491505092915050565b6001600160501b038181168382160190811115610d5957610d59613542565b5f82518060208501845e5f920191825250919050565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156137fa5783516001600160a01b03168352602093840193909201916001016137d3565b50506001600160a01b03959095166060840152505060800152939250505056fea2646970667358221220d79458f3482d46fbfec8ec11c8230674b7a1e96c107ba2cb6a118af52f1c4d1c64736f6c634300081a0033