0x60806040523480156200001157600080fd5b506200001d3362000027565b6001805562000077565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b614e4f80620000876000396000f3fe6080604052600436106101855760003560e01c80639a09b285116100d1578063e0af36161161008a578063f3e144b611610064578063f3e144b61461046d578063f851a4401461048d578063f9bb1b30146104ad578063fa461e33146104c057600080fd5b8063e0af36161461040b578063f2fde38b1461042d578063f3dced3c1461044d57600080fd5b80639a09b2851461037c578063a3606d1c1461039c578063c3b03898146103af578063ca68d8f6146103c2578063d13a35e6146103d8578063d8837daf146103f857600080fd5b806373679b6b1161013e5780637fed089d116101185780637fed089d146102f85780638575654f1461030b578063869c6b4b1461031e5780638da5cb5b1461035e57600080fd5b806373679b6b1461029d578063779e45fc146102c55780637e6845a6146102e557600080fd5b806301617fab146101dc5780631e0d944b146101ef5780631ecab7671461021557806341f4a959146102285780636aa4764514610248578063715018a61461028857600080fd5b366101d7573233036101d55760405162461bcd60e51b81526020600482015260146024820152731155120819195c1bdcda5d081c995a9958dd195960621b60448201526064015b60405180910390fd5b005b600080fd5b6101d56101ea366004613da3565b6104e0565b6102026101fd366004613e28565b610897565b6040519081526020015b60405180910390f35b610202610223366004613ebe565b6108ea565b34801561023457600080fd5b506101d5610243366004613f93565b61096c565b34801561025457600080fd5b50610270731243c09717e4441341472c4b142b8ac0b71f767281565b6040516001600160a01b03909116815260200161020c565b34801561029457600080fd5b506101d5610a29565b3480156102a957600080fd5b50610270735703b683c7f928b721ca95da988d73a3299d475781565b3480156102d157600080fd5b506101d56102e0366004613fe2565b610a3d565b6102026102f336600461401b565b610af4565b610202610306366004613e28565b610b77565b6102026103193660046140de565b610bb9565b34801561032a57600080fd5b5061034e61033936600461413e565b60046020526000908152604090205460ff1681565b604051901515815260200161020c565b34801561036a57600080fd5b506000546001600160a01b0316610270565b34801561038857600080fd5b506101d561039736600461413e565b610cbc565b6102026103aa36600461415b565b610d64565b6102026103bd3660046141e6565b610e9e565b3480156103ce57600080fd5b5061020261012c81565b3480156103e457600080fd5b50600354610270906001600160a01b031681565b6102026104063660046140de565b6110b8565b34801561041757600080fd5b50610270600080516020614dba83398151915281565b34801561043957600080fd5b506101d561044836600461413e565b6111b7565b34801561045957600080fd5b50600254610270906001600160a01b031681565b34801561047957600080fd5b506102026104883660046142bb565b611230565b34801561049957600080fd5b50601854610270906001600160a01b031681565b6102026104bb366004614359565b61127e565b3480156104cc57600080fd5b506101d56104db3660046143d5565b6112c1565b600160ff1b81166001600160801b038216806105335760405162461bcd60e51b81526020600482015260126024820152710616d6f756e74206d757374206265203e20360741b60448201526064016101cc565b81156106e55760405163052f523360e11b8152600080516020614dba8339815191526004820152336024820152735703b683c7f928b721ca95da988d73a3299d475760448201526001600160801b0382166064820152731243c09717e4441341472c4b142b8ac0b71f767290630a5ea46690608401600060405180830381600087803b1580156105c257600080fd5b505af11580156105d6573d6000803e3d6000fd5b5050604051632e1a7d4d60e01b81526001600160801b0384166004820152735703b683c7f928b721ca95da988d73a3299d47579250632e1a7d4d9150602401600060405180830381600087803b15801561062f57600080fd5b505af1158015610643573d6000803e3d6000fd5b50506040516000925033915047908381818185875af1925050503d8060008114610689576040519150601f19603f3d011682016040523d82523d6000602084013e61068e565b606091505b50509050806106df5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572206e617469766520746f6b656e206661696c65640000000060448201526064016101cc565b506107c3565b806001600160801b031634146107365760405162461bcd60e51b81526020600482015260166024820152751d985b1d59481b9bdd08195c5d585b08185b5bdd5b9d60521b60448201526064016101cc565b600080516020614dba8339815191526001600160a01b031663d0e30db0826001600160801b03166040518263ffffffff1660e01b81526004016000604051808303818588803b15801561078857600080fd5b505af115801561079c573d6000803e3d6000fd5b50505050506107c3600080516020614dba83398151915233836001600160801b03166114d0565b604051848152600080516020614dfa8339815191529060200160405180910390a1600080516020614dda833981519152826108125773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee610822565b600080516020614dba8339815191525b8361083b57600080516020614dba833981519152610851565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b604080516001600160a01b03938416815292909116602083015233908201526001600160801b03831660608201819052608082015260a00160405180910390a150505050565b60405160a087901c8152600090600080516020614dfa8339815191529060200160405180910390a16108d06108cb836145b2565b611500565b6108df8787873333898961162d565b979650505050505050565b60008660800135428110156109115760405162461bcd60e51b81526004016101cc9061470e565b6109196116d8565b604051898152600080516020614dfa8339815191529060200160405180910390a16109466108cb846145b2565b61095533338a8a8a8a8a611731565b915061096060018055565b50979650505050505050565b61097461181c565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03841601610a1957600080836001600160a01b03168360405160006040518083038185875af1925050503d80600081146109e7576040519150601f19603f3d011682016040523d82523d6000602084013e6109ec565b606091505b5091509150818190610a115760405162461bcd60e51b81526004016101cc9190614786565b505050505050565b610a248383836114d0565b505050565b610a3161181c565b610a3b6000611876565b565b6018546001600160a01b0316331480610a6057506000546001600160a01b031633145b610a915760405162461bcd60e51b81526020600482015260026024820152616e6160f01b60448201526064016101cc565b6001600160a01b038216600081815260046020908152604091829020805460ff19168515159081179091558251938452908301527fede97de789011d2becb9fba8441864c3b17f4a20f7ebf0a77e93f30adc30e207910160405180910390a15050565b6000866080013542811015610b1b5760405162461bcd60e51b81526004016101cc9061470e565b610b236116d8565b6040518a8152600080516020614dfa8339815191529060200160405180910390a1610b506108cb846145b2565b610b5f338a8a8a8a8a8a611731565b9150610b6a60018055565b5098975050505050505050565b60405160a087901c8152600090600080516020614dfa8339815191529060200160405180910390a1610bab6108cb836145b2565b6108df3388888888886118c6565b3360009081526004602052604081205460ff161515600114610bed5760405162461bcd60e51b81526004016101cc90614799565b60405160a087901c8152600080516020614dfa8339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa158015610c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7691906147c0565b90925090506001600160a01b038116610ca15760405162461bcd60e51b81526004016101cc906147ef565b610cb088888885858a8a61162d565b98975050505050505050565b6018546001600160a01b0316331480610cdf57506000546001600160a01b031633145b610d105760405162461bcd60e51b81526020600482015260026024820152616e6160f01b60448201526064016101cc565b601880546001600160a01b0319166001600160a01b0383169081179091556040519081527f7ce7ec0b50378fb6c0186ffb5f48325f6593fcb4ca4386f21861af3129188f5c9060200160405180910390a150565b6000856080013542811015610d8b5760405162461bcd60e51b81526004016101cc9061470e565b610d936116d8565b3360009081526004602052604090205460ff161515600114610dc75760405162461bcd60e51b81526004016101cc90614799565b604051888152600080516020614dfa8339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa158015610e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4c91906147c0565b90925090506001600160a01b038116610e775760405162461bcd60e51b81526004016101cc906147ef565b610e8682828b8b8b8b8b611731565b93505050610e9360018055565b509695505050505050565b6000866080013542811015610ec55760405162461bcd60e51b81526004016101cc9061470e565b610ecd6116d8565b87356001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed198101610f335760405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21039b7bab931b2903a37b5b2b760611b60448201526064016101cc565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015610f7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9e9190614817565b905060006040518060a001604052808c6000013581526020018c6020016020810190610fca919061413e565b6001600160a01b03168152602081018490526060808e0135604083015260808e013591015290506000896001600160401b0381111561100b5761100b614427565b604051908082528060200260200182016040528015611034578160200160208202803683370190505b50905060005b8a81101561109a578c60400135848d8d8481811061105a5761105a614830565b9050602002013561106b919061485c565b6110759190614873565b82828151811061108757611087614830565b602090810291909101015260010161103a565b506110a982828b8b308c611922565b955050505050610e9360018055565b3360009081526004602052604081205460ff1615156001146110ec5760405162461bcd60e51b81526004016101cc90614799565b60405160a087901c8152600080516020614dfa8339815191529060200160405180910390a1600080336001600160a01b031663534015b36040518163ffffffff1660e01b81526004016040805180830381865afa158015611151573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117591906147c0565b90925090506001600160a01b0381166111a05760405162461bcd60e51b81526004016101cc906147ef565b610cb082826001600160a01b0316898989896118c6565b6111bf61181c565b6001600160a01b0381166112245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101cc565b61122d81611876565b50565b60405160a089901c8152600090600080516020614dfa8339815191529060200160405180910390a1611263888484611c60565b611271338a898989896118c6565b9998505050505050505050565b60405160a088901c8152600090600080516020614dfa8339815191529060200160405180910390a16112b26108cb836145b2565b610cb08888883389898961162d565b611317565b3d6000803e3d6000fd5b806112dd576112dd6112c6565b6378c3e72460005160e01c1460203d1416600160005114601f3d1116173d15178061131357633c9fd93960e21b60005260046000fd5b5050565b6040516015810173037f85a074848829f7728fd0ea41672ede30f9c960621b825260206000600484335afa61134e5761134e6112c6565b6020806004808501335afa611365576113656112c6565b60206040600460088501335afa61137e5761137e6112c6565b600080600088136001811461139a5760205192508791506113a3565b60005192508891505b507fff1f98431c8ad98523631ae4a59f267346ea31f98400000000000000000000008452606060002083527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460208401526001600160a01b036055852016925033831461141b57635960139160e11b60005260046000fd5b608435925073037f85a074848829f7728fd0ea41672ede30f9c960621b8452308314600181146114a2576001601486015260006034860152826054860152836074860152336094860152600060b48601528160d486015261149d6020600060e4601089016000731243c09717e4441341472c4b142b8ac0b71f76725af16112d0565b6114c5565b3360108601528160308601526114c5602060006044600c89016000885af16112d0565b505050505050505050565b6114e38363a9059cbb60e01b8484611dbf565b610a245760405163fb7f507960e01b815260040160405180910390fd5b6020810151511561122d5760408101516001600160a01b03166115925780516020820151604051633998934360e11b8152731243c09717e4441341472c4b142b8ac0b71f76729263733126869261155d923392919060040161491d565b600060405180830381600087803b15801561157757600080fd5b505af115801561158b573d6000803e3d6000fd5b5050505050565b6040805160808101825282515181528251602090810151818301523382840152835183015160608301528383015190840151925163f4c129b160e01b81529192731243c09717e4441341472c4b142b8ac0b71f76729263f4c129b1926115ff92909186919060040161498c565b600060405180830381600087803b15801561161957600080fd5b505af1158015610a11573d6000803e3d6000fd5b60006001600160a01b0384166116735760405162461bcd60e51b815260206004820152600b60248201526a6e6f74206164647228302960a81b60448201526064016101cc565b600061167d611e13565b905060008061168e8389898d611ebb565b9150915060006116ac6001600160a01b038d168c8c8a8a8e8961209a565b905060006116bb858a856128d6565b90506116c781836149ff565b9d9c50505050505050505050505050565b60026001540361172a5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016101cc565b6002600155565b60006001600160a01b0387166117775760405162461bcd60e51b815260206004820152600b60248201526a6e6f74206164647228302960a81b60448201526064016101cc565b6000611781611e13565b9050600080611796838c8c8c60400135611ebb565b90925090508a60006117ef6117b0368d90038d018d614a12565b8b8b808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508d92508c915087905089611922565b905060006117fe868e866128d6565b905061180a81836149ff565b9e9d5050505050505050505050505050565b6000546001600160a01b03163314610a3b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000806118d1611e13565b90506000806118e2838b8b8b611ebb565b9150915060006118f68b848b8b8b8b612b53565b5090506000611906858c856128d6565b905061191281836149ff565b9c9b505050505050505050505050565b604086015160009087906119835760405162461bcd60e51b815260206004820152602260248201527f526f7574653a2066726f6d546f6b656e416d6f756e74206d757374206265203e604482015261020360f41b60648201526084016101cc565b805160208201516001600160a01b03918216916119a1911685613064565b92506119ac816130f8565b15611a1b57600080516020614dba8339815191526001600160a01b031663d0e30db083604001516040518263ffffffff1660e01b81526004016000604051808303818588803b1580156119fe57600080fd5b505af1158015611a12573d6000803e3d6000fd5b50505050503094505b6000805b8951811015611a5757898181518110611a3a57611a3a614830565b602002602001015182611a4d9190614a8a565b9150600101611a1f565b508260400151811115611aca5760405162461bcd60e51b815260206004820152603560248201527f526f7574653a206e756d626572206f6620626174636865732073686f756c64206044820152741899480f0f48199c9bdb551bdad95b905b5bdd5b9d605a1b60648201526084016101cc565b5087518614611b0d5760405162461bcd60e51b815260206004820152600f60248201526e0d8cadccee8d040dad2e6dac2e8c6d608b1b60448201526064016101cc565b60005b86811015611b7e57611b768686611b3386602001516001600160a01b03166130f8565b8c8581518110611b4557611b45614830565b60200260200101518c8c87818110611b5f57611b5f614830565b9050602002810190611b719190614a9d565b61311a565b600101611b10565b50611b8d8260200151856132d4565b60208201518390611ba7906001600160a01b031686613064565b611bb191906149ff565b92508160600151831015611c005760405162461bcd60e51b8152602060048201526016602482015275135a5b881c995d1d5c9b881b9bdd081c995858da195960521b60448201526064016101cc565b60208083015160408085015181516001600160a01b038087168252909316938301939093523290820152606081019190915260808101849052600080516020614dda8339815191529060a00160405180910390a150509695505050505050565b8015610a24576000606060e0839003611d01576040516001600160a01b03861690611c9a9063d505accf60e01b9087908790602001614ae6565b60408051601f1981840301815290829052611cb491614b0a565b6000604051808303816000865af19150503d8060008114611cf1576040519150601f19603f3d011682016040523d82523d6000602084013e611cf6565b606091505b509092509050611d70565b610100839003611d32576040516001600160a01b03861690611c9a906323f2ebc360e21b9087908790602001614ae6565b60405162461bcd60e51b81526020600482015260136024820152720aee4dedcce40e0cae4dad2e840d8cadccee8d606b1b60448201526064016101cc565b8161158b57611da6816040518060400160405280600f81526020016e02832b936b4ba103330b4b632b21d1608d1b81525061359c565b60405162461bcd60e51b81526004016101cc9190614786565b60006040518481528360048201528260248201526020600060448360008a5af19150508015611e0b573d8015611e0157600160005114601f3d11169150611e09565b6000863b1191505b505b949350505050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260405160a081016040525060203603356001600160d01b03198116651e51057e155560d11b1482526001600160d01b03198116653ca20afc2bbb60d01b14826020015265ffffffffffff60a01b811660a01c82604001526001600160a01b0381168260600152506001600160a01b03604036033516816080015290565b600080856020015115611ee05730611ed78760800151306136ff565b91509150612091565b8551611ef157508290506000612091565b611f12565b62461bcd60e51b600052600160e51b6020528060405250806000fd5b604086015161012c811115611f4957611f49605f7c1b6572726f7220636f6d6d697373696f6e2072617465206c696d697400611ef6565b60808701516060880151826127100383870204925073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8214600181146120125760405160848101604052631e30f9c960e21b81526001600482015260006024820152836044820152896064820152826084820152600060a48201528460c482015260008060e4836000731243c09717e4441341472c4b142b8ac0b71f76725af190508061200c5761200c60577c13636c61696d20746f6b656e73206661696c6564000000000000000000611ef6565b5061204b565b60008060008087865af18061204957612049605f7c1b636f6d6d697373696f6e2077697468206574686572206572726f7200611ef6565b505b50604051915060408201604052828252806020830152507fffc60ee157a42f4d8edbd1897e6581a96d9ed04e44fb2ab53a47ce1eb8f2775b604082a15050836000915091505b94509492505050565b60006122ca565b828152600060206000600484600401865afa6120d6576120d66054700419d95d081d1bdad95b8819985a5b195960621b611ef6565b505060005192915050565b6770a082310dfe168160c01b815260008060206000600485600401875afa61212457612124605672049d1bdad95b8c0818d85b1b0819985a5b195960521b611ef6565b600051915083836004015260206000602485855afa6121655761216560597c1562616c616e63654f662063616c6c206661696c656400000000000000611ef6565b60005190509250929050565b6770a08231d21220a760c01b815260008060206000600485600401875afa61212457612124605672049d1bdad95b8c4818d85b1b0819985a5b195960521b611ef6565b668b0367c240bc6b60c21b8152600060406000600484600401875afa6121fc576121fc60587c1472657365727665732063616c6c206661696c65640000000000000000611ef6565b600051602051868015612228578915612220576122198786612171565b8390039650505b90919061223f565b881561223f5761223887866120e1565b8490039650505b50668b0367c240bc6b60c21b8452898502633b9aca0092909202820191020490508480156122795781600484015260006024840152612287565b600060048401528160248401525b50886044830152608060648301526000608483015260008060a4846000885af1610cb057610cb0605470041cddd85c0818d85b1b0819985a5b195960621b611ef6565b8460208502810185806122f1576122f1604e6b0b656d70747920706f6f6c7360901b611ef6565b5060405182358b15600181146123b05734156123275761232760557111696e76616c6964206d73672e76616c756560581b611ef6565b631e30f9c960e21b835260016004840152600060248401528c60448401528760648401526001600160a01b0382166084840152600060a48401528b60c484015260008060e4856000731243c09717e4441341472c4b142b8ac0b71f76725af16123ab576123ab6056720498db185a5b481d1bdad95b8819985a5b195960521b611ef6565b61247d565b60018c3410036123da576123da60557111696e76616c6964206d73672e76616c756560581b611ef6565b670a9059cbbd0e30db60c41b835260008060048086018f600080516020614dba8339815191525af1612427576124276056720499195c1bdcda5d081155120819985a5b195960521b611ef6565b6001600160a01b03821683600401528b8360240152602060006044856000600080516020614dba8339815191525af161247d5761247d605874051d1c985b9cd9995c8815d155120819985a5b195960421b611ef6565b508a9450602084015b838110156124dc5780356124d06001600160a01b03821663ffffffff60a01b851660a01c600160fd1b8616600160fc1b8716600160ff1b88166001600160a01b0389168d8b6121b4565b96509150602001612486565b5060009350600160fe1b8116801561262a57600094506125293063ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a6121b4565b9550672e1a7d4da9059cbb60c01b8352735703b683c7f928b721ca95da988d73a3299d47576008840152856028840152602060006044856004016000600080516020614dba8339815191525af161259d5761259d605874051d1c985b9cd9995c8815d155120819985a5b195960421b611ef6565b856004840152602060006024856000735703b683c7f928b721ca95da988d73a3299d47575af16125ef576125ef60577c13776974686472617720455448206661696c6564000000000000000000611ef6565b600080600080898b5af16126255761262560577c137472616e7366657220455448206661696c6564000000000000000000611ef6565b612868565b60009350600160ff1b821680156126dc57600160fc1b8316156126d7576770a082310dfe168160c01b8452602060006004866004016001600160a01b0387165afa61269057612690605672049d1bdad95b8c0818d85b1b0819985a5b195960521b611ef6565b600051955087846004015260206000602486895afa6126d1576126d160567c15746f6b656e302062616c616e6365206661696c656400000000000000611ef6565b60005194505b612778565b600160fd1b831615612778576770a08231d21220a760c01b8452602060006004866004016001600160a01b0387165afa61273157612731605672049d1bdad95b8c4818d85b1b0819985a5b195960521b611ef6565b600051955087846004015260206000602486895afa6127725761277260597c15746f6b656e312062616c616e6365206661696c656400000000000000611ef6565b60005194505b506127b08763ffffffff60a01b841660a01c600160fd1b8516600160fc1b8616600160ff1b87166001600160a01b0388168c8a6121b4565b9550846000106001811461281957600160ff1b831680156127f1576127ea6770a082310dfe168160c01b6001600160a01b038616876120a1565b9650612813565b6128106770a08231d21220a760c01b6001600160a01b038616876120a1565b96505b50612866565b6770a082310dfe168160c01b845287846004015260206000602486895afa61285e5761285e6058740519d95d0818985b185b98d953d98819985a5b195960421b611ef6565b846000510396505b505b50508884101561289a5761289a605a7c164d696e2072657475726e206e6f742072656163686564000000000000611ef6565b8a8152826020820152326040820152896060820152836080820152600080516020614dda83398151915260a082a1505050979650505050505050565b600083602001516128e957506000612b4c565b604084015161012c81111561292057612920605f7c1b6572726f7220636f6d6d697373696f6e2072617465206c696d697400611ef6565b6080850151606086015173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee821460018114612a6b57604051604881016040526ba9059cbba9059cbb70a0823160a01b815230600c82015260206000602460088401875afa806129a0576129a06058740519d95d0818985b185b98d953d98819985a5b195960421b611ef6565b600051888110156129c4576129c4604d6a029cdd588819985a5b195960961b611ef6565b888103905061271087820204975084600884015287602884015260008060446004860160008a5af1915081612a1b57612a1b605f7c1b7472616e7366657220746f6b656e2072656665726572206661696c00611ef6565b8960048401528781036024840152506000806044846000895af1905080612a6457612a6460607c1c7472616e7366657220746f6b656e207265636569766572206661696c611ef6565b5050612b0d565b85471015612a8c57612a8c604d6a029cdd588819985a5b195960961b611ef6565b85470361271085820204955060008060008089875af180612acf57612acf605d7c197472616e73666572206574682072656665726572206661696c000000611ef6565b6000806000808a86038d5af1905080612b0a57612b0a605e7c1a7472616e7366657220657468207265636569766572206661696c0000611ef6565b50505b5060405192506040830160405283835280602084015250507fffc60ee157a42f4d8edbd1897e6581a96d9ed04e44fb2ab53a47ce1eb8f2775b604082a1505b9392505050565b600080612f65565b6000846001600160ff1b031015612b7d57630b3f79fd60e41b60005260046000fd5b604051600160ff1b8516156001600160a01b0386168160018114612c0a57630251596160e31b8452600484018681526000602082015289604082015273fffd8963efd1fc6a506488495d951d5263988d25606082015260a06080820152602060a08201528760c08201525060008060e4866000865af180612bfe5760206000fd5b5060206000803e612c66565b630251596160e31b845260048401868152600160208201528960408201526401000276a4606082015260a06080820152602060a08201528760c08201525060008060e4866000865af180612c5e5760206000fd5b5060208060003e5b505050506000519050600160ff1b811015612c8c576322323ba760e21b60005260046000fd5b19600101949350505050565b600181341003612cb357631841b4e160e01b60005260046000fd5b60008060008084600080516020614dba8339815191525af1806113135761131360577c1357455448206465706f736974206661696c6564000000000000000000611ef6565b60405160048101672e1a7d4da9059cbb60c01b8252735703b683c7f928b721ca95da988d73a3299d475760048201528360248201526000806044836000600080516020614dba8339815191525af1905080612d7557612d7560587c147472616e736665722077657468206661696c65640000000000000000611ef6565b8360048301526000806024846000735703b683c7f928b721ca95da988d73a3299d47575af1905080612dc957612dc960587c1477697468647261772077657468206661696c65640000000000000000611ef6565b60008060008087875af1905080612dfa57612dfa605571045cd95b9908195d1a195c8819985a5b1959605a1b611ef6565b50505050565b600060405173037f85a074848829f7728fd0ea41672ede30f9c960621b8152600080600483865afa905080612e4f57612e4f6055710459d95d081d1bdad95b8c0819985a5b1959605a1b611ef6565b5060206000803e505060005190565b600060405173037f85a074848829f7728fd0ea41672ede30f9c960621b81526000806004808401865afa905080612e4f57612e4f6054710459d95d081d1bdad95b8c4819985a5b1959605a1b611ef6565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8085612efb578235600160ff1b81161560018114612eec57612ee582612e5e565b9350612ef8565b612ef582612e00565b93505b50505b86612f31578335600160ff1b81161560018114612f2257612f1b82612e00565b9250612f2e565b612f2b82612e5e565b92505b50505b60405182600052816020523260405285608052600080516020614dda83398151915260a06000a16040525095945050505050565b83601f19602085028201018480612f87576333f3e07b60e11b60005260046000fd5b50600034118015612f9f57612f9b89612c98565b309a505b88606052825b82811015612fc757612fba8a82358e30612b5b565b309c509950602001612fa5565b506000600160fd1b833516118060018114612fe757801561300557613015565b612ff48b85358f30612b5b565b9650613000878d612cf8565b613015565b6130128b85358f8f612b5b565b96505b508886101561304657613046605a7c164d696e2072657475726e206e6f742072656163686564000000000000611ef6565b6130538183888688612eaf565b945050505050965096945050505050565b600061306f836130f8565b1561308557506001600160a01b038116316130f2565b6040516370a0823160e01b81526001600160a01b0383811660048301528416906370a0823190602401602060405180830381865afa1580156130cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ef9190614817565b90505b92915050565b6001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b60006131548383600081811061313257613132614830565b90506020028101906131449190614b26565b608001356001600160a01b031690565b905060008083815b818110156132c757801561319a5761317f87878381811061313257613132614830565b94506131946001600160a01b03861630613064565b9750309a505b306131a66001846149ff565b821480156131b2575089155b156131be57508961328b565b6131c96001846149ff565b82108015613214575087876131df846001614a8a565b8181106131ee576131ee614830565b90506020028101906132009190614b26565b61320e906020810190614a9d565b90506001145b15613286578787613226846001614a8a565b81811061323557613235614830565b90506020028101906132479190614b26565b613255906020810190614a9d565b600081811061326657613266614830565b905060200201602081019061327b919061413e565b90506001945061328b565b600094505b6132bb8c828b8b8b878181106132a3576132a3614830565b90506020028101906132b59190614b26565b88613784565b5083925060010161315c565b5050505050505050505050565b6132e6826001600160a01b03166130f8565b1561350e576040516370a0823160e01b8152306004820152600090600080516020614dba833981519152906370a0823190602401602060405180830381865afa158015613337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061335b9190614817565b905080156134545760405163a9059cbb60e01b8152735703b683c7f928b721ca95da988d73a3299d4757600482015260248101829052600080516020614dba8339815191529063a9059cbb906044016020604051808303816000875af11580156133c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133ed9190614b3c565b50604051632e1a7d4d60e01b815260048101829052735703b683c7f928b721ca95da988d73a3299d475790632e1a7d4d90602401600060405180830381600087803b15801561343b57600080fd5b505af115801561344f573d6000803e3d6000fd5b505050505b6001600160a01b0382163014610a2457478015612dfa576000836001600160a01b03168260405160006040518083038185875af1925050503d80600081146134b8576040519150601f19603f3d011682016040523d82523d6000602084013e6134bd565b606091505b505090508061158b5760405162461bcd60e51b815260206004820152601c60248201527f7472616e73666572206e617469766520746f6b656e206661696c65640000000060448201526064016101cc565b6001600160a01b0381163014611313576040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015613565573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135899190614817565b90508015610a2457610a248383836114d0565b606060048351106136cd5760208301516001600160e01b0319811662461bcd60e51b1480156135cd57506044845110155b1561366d576024848101518086018201805191929091906135ef908490614a8a565b6135f99190614a8a565b865110156136415760405162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103932bb32b93a103932b0b9b7b760591b60448201526064016101cc565b8481604051602001613654929190614b59565b60405160208183030381529060405293505050506130f2565b6001600160e01b03198116634e487b7160e01b14801561368e575083516024145b156136cb576024840151836136a282613a78565b6040516020016136b3929190614ba8565b604051602081830303815290604052925050506130f2565b505b816136d784613aa0565b6040516020016136e8929190614bdd565b604051602081830303815290604052905092915050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee83146001811461377957604051602481016040526370a0823160e01b815283600482015260206000602483885afa90508061376e5761376e6058740519d95d0818985b185b98d953d98819985a5b195960421b611ef6565b50600051915061377d565b4791505b5092915050565b60808201356001600160a01b031660008061379f8580614a9d565b9050905060005b818110156114c55760006137bd6040880188614a9d565b838181106137cd576137cd614830565b60200291909101359150506001600160a01b038116600160ff1b821661ffff60a084901c166137fc8188614a8a565b96506138096001876149ff565b8503613870576127108711156138705760405162461bcd60e51b815260206004820152602660248201527f746f74616c5765696768742063616e206e6f7420657863656564203130303030604482015265081b1a5b5a5d60d21b60648201526084016101cc565b886138df576000816127101461389c5761271061388d838e61485c565b6138979190614873565b61389e565b8b5b90506138dd8e6138b160208e018e614a9d565b898181106138c1576138c1614830565b90506020020160208101906138d6919061413e565b8b84613c87565b505b81156139a9576138ef8a80614a9d565b868181106138ff576138ff614830565b9050602002016020810190613914919061413e565b6001600160a01b0316636f7929f28d8561393160608f018f614a9d565b8a81811061394157613941614830565b90506020028101906139539190614c2e565b6040518563ffffffff1660e01b81526004016139729493929190614c74565b600060405180830381600087803b15801561398c57600080fd5b505af11580156139a0573d6000803e3d6000fd5b50505050613a69565b6139b38a80614a9d565b868181106139c3576139c3614830565b90506020020160208101906139d8919061413e565b6001600160a01b03166330e6ae318d856139f560608f018f614a9d565b8a818110613a0557613a05614830565b9050602002810190613a179190614c2e565b6040518563ffffffff1660e01b8152600401613a369493929190614c74565b600060405180830381600087803b158015613a5057600080fd5b505af1158015613a64573d6000803e3d6000fd5b505050505b846001019450505050506137a6565b60606130f282604051602001613a9091815260200190565b6040516020818303038152906040525b80516060906f181899199a1a9b1b9c1cb0b131b232b360811b90600090613ac890600261485c565b613ad3906002614a8a565b6001600160401b03811115613aea57613aea614427565b6040519080825280601f01601f191660200182016040528015613b14576020820181803683370190505b509050600360fc1b81600081518110613b2f57613b2f614830565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613b5e57613b5e614830565b60200101906001600160f81b031916908160001a90535060005b8451811015613c7f57826004868381518110613b9657613b96614830565b01602001516001600160f81b031916901c60f81c60108110613bba57613bba614830565b1a60f81b82613bca83600261485c565b613bd5906002614a8a565b81518110613be557613be5614830565b60200101906001600160f81b031916908160001a90535082858281518110613c0f57613c0f614830565b60209101015160f81c600f1660108110613c2b57613c2b614830565b1a60f81b82613c3b83600261485c565b613c46906003614a8a565b81518110613c5657613c56614830565b60200101906001600160f81b031916908160001a90535080613c7781614cc0565b915050613b78565b509392505050565b306001600160a01b03851603613ca757613ca28284836114d0565b612dfa565b613ce86040805160e0810190915280600081526020016000815260006020820181905260408201819052606082018190526080820181905260a09091015290565b506040805160e081018252600181526000602082018190526001600160a01b038086168385015287811660608401528616608083015260a082015260c081018390529051631e30f9c960e21b8152731243c09717e4441341472c4b142b8ac0b71f7672906378c3e72490613d60908490600401614cef565b6020604051808303816000875af1158015613d7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190614d8f565b60008060408385031215613db657600080fd5b50508035926020909101359150565b60008083601f840112613dd757600080fd5b5081356001600160401b03811115613dee57600080fd5b6020830191508360208260051b8501011115613e0957600080fd5b9250929050565b600060608284031215613e2257600080fd5b50919050565b60008060008060008060a08789031215613e4157600080fd5b86359550602087013594506040870135935060608701356001600160401b0380821115613e6d57600080fd5b613e798a838b01613dc5565b90955093506080890135915080821115613e9257600080fd5b50613e9f89828a01613e10565b9150509295509295509295565b600060a08284031215613e2257600080fd5b6000806000806000806000610120888a031215613eda57600080fd5b87359650613eeb8960208a01613eac565b955060c08801356001600160401b0380821115613f0757600080fd5b613f138b838c01613dc5565b909750955060e08a0135915080821115613f2c57600080fd5b613f388b838c01613dc5565b90955093506101008a0135915080821115613f5257600080fd5b50613f5f8a828b01613e10565b91505092959891949750929550565b6001600160a01b038116811461122d57600080fd5b8035613f8e81613f6e565b919050565b600080600060608486031215613fa857600080fd5b8335613fb381613f6e565b92506020840135613fc381613f6e565b929592945050506040919091013590565b801515811461122d57600080fd5b60008060408385031215613ff557600080fd5b823561400081613f6e565b9150602083013561401081613fd4565b809150509250929050565b600080600080600080600080610140898b03121561403857600080fd5b88359750602089013561404a81613f6e565b96506140598a60408b01613eac565b955060e08901356001600160401b038082111561407557600080fd5b6140818c838d01613dc5565b90975095506101008b013591508082111561409b57600080fd5b6140a78c838d01613dc5565b90955093506101208b01359150808211156140c157600080fd5b506140ce8b828c01613e10565b9150509295985092959890939650565b6000806000806000608086880312156140f657600080fd5b85359450602086013593506040860135925060608601356001600160401b0381111561412157600080fd5b61412d88828901613dc5565b969995985093965092949392505050565b60006020828403121561415057600080fd5b8135612b4c81613f6e565b600080600080600080610100878903121561417557600080fd5b863595506141868860208901613eac565b945060c08701356001600160401b03808211156141a257600080fd5b6141ae8a838b01613dc5565b909650945060e08901359150808211156141c757600080fd5b506141d489828a01613dc5565b979a9699509497509295939492505050565b600080600080600080610100878903121561420057600080fd5b61420a8888613eac565b955060a08701356001600160401b038082111561422657600080fd5b6142328a838b01613dc5565b909750955060c089013591508082111561424b57600080fd5b5061425889828a01613dc5565b90945092505060e087013561426c81613f6e565b809150509295509295509295565b60008083601f84011261428c57600080fd5b5081356001600160401b038111156142a357600080fd5b602083019150836020828501011115613e0957600080fd5b60008060008060008060008060c0898b0312156142d757600080fd5b8835975060208901356142e981613f6e565b9650604089013595506060890135945060808901356001600160401b038082111561431357600080fd5b61431f8c838d01613dc5565b909650945060a08b013591508082111561433857600080fd5b506143458b828c0161427a565b999c989b5096995094979396929594505050565b600080600080600080600060c0888a03121561437457600080fd5b873596506020880135955060408801359450606088013561439481613f6e565b935060808801356001600160401b03808211156143b057600080fd5b6143bc8b838c01613dc5565b909550935060a08a0135915080821115613f5257600080fd5b600080600080606085870312156143eb57600080fd5b843593506020850135925060408501356001600160401b0381111561440f57600080fd5b61441b8782880161427a565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561445f5761445f614427565b60405290565b604080519081016001600160401b038111828210171561445f5761445f614427565b604051601f8201601f191681016001600160401b03811182821017156144af576144af614427565b604052919050565b60006001600160401b038211156144d0576144d0614427565b5060051b60200190565b600082601f8301126144eb57600080fd5b813560206145006144fb836144b7565b614487565b82815260059290921b8401810191818101908684111561451f57600080fd5b8286015b84811015610e9357803561453681613f6e565b8352918301918301614523565b600082601f83011261455457600080fd5b81356001600160401b0381111561456d5761456d614427565b614580601f8201601f1916602001614487565b81815284602083860101111561459557600080fd5b816020850160208301376000918101602001919091529392505050565b6000606082360312156145c457600080fd5b6145cc61443d565b82356001600160401b03808211156145e357600080fd5b8185019150606082360312156145f857600080fd5b61460061443d565b82358281111561460f57600080fd5b830136601f82011261462057600080fd5b803560206146306144fb836144b7565b82815260069290921b8301810191818101903684111561464f57600080fd5b938201935b8385101561469b576040853603121561466d5760008081fd5b614675614465565b853561468081613f6e565b81528584013584820152825260409094019390820190614654565b855250858101359250848311156146b157600080fd5b6146bd368488016144da565b8185015260408601356040850152838752808901359550848611156146e157600080fd5b6146ed36878b01614543565b8188015250505050505061470360408401613f83565b604082015292915050565b6020808252600e908201526d149bdd5d194e88195e1c1a5c995960921b604082015260600190565b60005b83811015614751578181015183820152602001614739565b50506000910152565b60008151808452614772816020860160208601614736565b601f01601f19169290920160200192915050565b602081526000612b4c602083018461475a565b6020808252600d908201526c6f6e6c79207072696f7269747960981b604082015260600190565b600080604083850312156147d357600080fd5b82516147de81613f6e565b602084015190925061401081613f6e565b6020808252600e908201526d6e6f74206164647265737328302960901b604082015260600190565b60006020828403121561482957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176130f2576130f2614846565b60008261489057634e487b7160e01b600052601260045260246000fd5b500490565b600081518084526020808501945080840160005b838110156148d957815180516001600160a01b0316885283015183880152604090960195908201906001016148a9565b509495945050505050565b600081518084526020808501945080840160005b838110156148d95781516001600160a01b0316875295820195908201906001016148f8565b60018060a01b0384168152606060208201526000835160608084015261494660c0840182614895565b90506020850151605f1984830301608085015261496382826148e4565b915050604085015160a08401528281036040840152614982818561475a565b9695505050505050565b600060018060a01b038086168352606060208401528451608060608501526149b760e0850182614895565b90506020860151605f198583030160808601526149d482826148e4565b9150508160408701511660a0850152606086015160c085015283810360408501526108df818661475a565b818103818111156130f2576130f2614846565b600060a08284031215614a2457600080fd5b60405160a081018181106001600160401b0382111715614a4657614a46614427565b604052823581526020830135614a5b81613f6e565b806020830152506040830135604082015260608301356060820152608083013560808201528091505092915050565b808201808211156130f2576130f2614846565b6000808335601e19843603018112614ab457600080fd5b8301803591506001600160401b03821115614ace57600080fd5b6020019150600581901b3603821315613e0957600080fd5b6001600160e01b031984168152818360048301376000910160040190815292915050565b60008251614b1c818460208701614736565b9190910192915050565b60008235609e19833603018112614b1c57600080fd5b600060208284031215614b4e57600080fd5b8151612b4c81613fd4565b60008351614b6b818460208801614736565b6508ae4e4dee4560d31b9083019081528351614b8e816006840160208801614736565b602960f81b60069290910191820152600701949350505050565b60008351614bba818460208801614736565b650a0c2dcd2c6560d31b9083019081528351614b8e816006840160208801614736565b60008351614bef818460208801614736565b670aadcd6dcdeeedc560c31b9083019081528351614c14816008840160208801614736565b602960f81b60089290910191820152600901949350505050565b6000808335601e19843603018112614c4557600080fd5b8301803591506001600160401b03821115614c5f57600080fd5b602001915036819003821315613e0957600080fd5b6001600160a01b0385811682528416602082015260606040820181905281018290526000828460808401376000608084840101526080601f19601f850116830101905095945050505050565b600060018201614cd257614cd2614846565b5060010190565b634e487b7160e01b600052602160045260246000fd5b815160e082019060048110614d0657614d06614cd9565b8252602083015160028110614d1d57614d1d614cd9565b806020840152506040830151614d3e60408401826001600160a01b03169052565b506060830151614d5960608401826001600160a01b03169052565b506080830151614d7460808401826001600160a01b03169052565b5060a083015160a083015260c083015160c083015292915050565b600060208284031215614da157600080fd5b81516001600160e01b031981168114612b4c57600080fdfe000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21bb43f2da90e35f7b0cf38521ca95a49e68eb42fac49924930a5bd73cdf7576c7724394874fdd8ad13292ec739b441f85c6559f10dc4141b8d4c0fa4cbf55bdba26469706673582212202bf189c36eff4bfbfe9d4939d35514d6d6f474f67235e6e25869e780669b40b064736f6c63430008110033