交易详情
交易哈希
:0x97186c845dc73fe3e5ad4deb6752d4227c4c4a9eb87716904d28cf710dd15fb0
交易行为:
交易数量:
0OKT
($0)
交易手续费:
0.0008921725
Gas 价格:
0.0000000001 OKT (0.1 Gwei)
Gas 上限 & Gas 消耗:
13,442,575|8,921,725 (66.37%)
其他信息:
Nonce:213
区块内交易编号:0
EVM 输入数据:
0x6101206040526040516200b0ef3803806200b0ef83398101604081905262000027916200049e565b30608052604080516001808252818301909252600091602080830190803683375050604080516001808252818301909252929350600092915060208083019080368337019050509050338260008151811062000087576200008762000575565b60200260200101906001600160a01b031690816001600160a01b0316815250503381600081518110620000be57620000be62000575565b60200260200101906001600160a01b031690816001600160a01b031681525050600089838330604051620000f2906200037f565b620001019493929190620005d2565b604051809103906000f0801580156200011e573d6000803e3d6000fd5b5090506000818a8a60405162000134906200038d565b620001429392919062000649565b604051809103906000f0801580156200015f573d6000803e3d6000fd5b509050600081838a8a8a8a60405162000178906200039b565b620001899695949392919062000683565b604051809103906000f080158015620001a6573d6000803e3d6000fd5b50604051632f2ff15d60e01b81527fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc160048201526001600160a01b03808316602483015291925090841690632f2ff15d90604401600060405180830381600087803b1580156200021557600080fd5b505af11580156200022a573d6000803e3d6000fd5b5050604051632f2ff15d60e01b81527fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6360048201526001600160a01b03848116602483015286169250632f2ff15d9150604401600060405180830381600087803b1580156200029857600080fd5b505af1158015620002ad573d6000803e3d6000fd5b5050604051632f2ff15d60e01b8152600060048201523360248201526001600160a01b0386169250632f2ff15d9150604401600060405180830381600087803b158015620002fa57600080fd5b505af11580156200030f573d6000803e3d6000fd5b50505050826040516200032290620003a9565b6001600160a01b039091168152602001604051809103906000f0801580156200034f573d6000803e3d6000fd5b506001600160a01b039081166101005292831660a05290821660c0521660e05250620006dd975050505050505050565b612068806200094883390190565b612a3780620029b083390190565b6156d980620053e783390190565b61062f806200aac083390190565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620003ea578181015183820152602001620003d0565b50506000910152565b600082601f8301126200040557600080fd5b81516001600160401b0380821115620004225762000422620003b7565b604051601f8301601f19908116603f011681019082821181831017156200044d576200044d620003b7565b816040528381528660208588010111156200046757600080fd5b6200047a846020830160208901620003cd565b9695505050505050565b805163ffffffff811681146200049957600080fd5b919050565b600080600080600080600060e0888a031215620004ba57600080fd5b875160208901519097506001600160401b0380821115620004da57600080fd5b620004e88b838c01620003f3565b975060408a0151915080821115620004ff57600080fd5b6200050d8b838c01620003f3565b965060608a01519150808211156200052457600080fd5b50620005338a828b01620003f3565b945050608088015165ffffffffffff811681146200055057600080fd5b92506200056060a0890162000484565b915060c0880151905092959891949750929550565b634e487b7160e01b600052603260045260246000fd5b60008151808452602080850194506020840160005b83811015620005c75781516001600160a01b031687529582019590820190600101620005a0565b509495945050505050565b848152608060208201526000620005ed60808301866200058b565b82810360408401526200060181866200058b565b91505060018060a01b038316606083015295945050505050565b6000815180845262000635816020860160208601620003cd565b601f01601f19169290920160200192915050565b6001600160a01b03841681526060602082018190526000906200066f908301856200061b565b82810360408401526200047a81856200061b565b6001600160a01b0387811682528616602082015260c060408201819052600090620006b1908301876200061b565b65ffffffffffff9590951660608301525063ffffffff92909216608083015260a0909101529392505050565b60805160a05160c05160e0516101005161022862000720600039600060cd01526000607c01526000610181015260006101330152600061015a01526102286000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063d085835a11610050578063d085835a1461012e578063e665b26614610155578063fc0c546a1461017c57600080fd5b80630c340a241461007757806361d027b3146100c8578063a6246d09146100ef575b600080fd5b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b604080518082018252600981527f6869206173696e64750000000000000000000000000000000000000000000000602082015290516100bf91906101a3565b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b61009e7f000000000000000000000000000000000000000000000000000000000000000081565b60006020808352835180602085015260005b818110156101d1578581018301518582016040015282016101b5565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220bc2beb4da5e5db48775b06c1e94e3e8ffbe999c03f2b02f6ddc491653162a65664736f6c6343000818003360806040523480156200001157600080fd5b506040516200206838038062002068833981016040819052620000349162000337565b8383838362000045600030620001a5565b506001600160a01b03811615620000655762000063600082620001a5565b505b60005b83518110156200010557620000c07fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1858381518110620000ac57620000ac620003be565b6020026020010151620001a560201b60201c565b50620000fb7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783858381518110620000ac57620000ac620003be565b5060010162000068565b5060005b825181101562000157576200014d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63848381518110620000ac57620000ac620003be565b5060010162000109565b5060028490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a15050505050505050620003d4565b6000828152602081815260408083206001600160a01b038516845290915281205460ff166200024a576000838152602081815260408083206001600160a01b03861684529091529020805460ff19166001179055620002013390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200024e565b5060005b92915050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200028257600080fd5b919050565b600082601f8301126200029957600080fd5b815160206001600160401b0380831115620002b857620002b862000254565b8260051b604051601f19603f83011681018181108482111715620002e057620002e062000254565b60405293845260208187018101949081019250878511156200030157600080fd5b6020870191505b848210156200032c576200031c826200026a565b8352918301919083019062000308565b979650505050505050565b600080600080608085870312156200034e57600080fd5b845160208601519094506001600160401b03808211156200036e57600080fd5b6200037c8883890162000287565b945060408701519150808211156200039357600080fd5b50620003a28782880162000287565b925050620003b3606086016200026a565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b611c8480620003e46000396000f3fe6080604052600436106101bb5760003560e01c80638065657f116100ec578063bc197c811161008a578063d547741f11610064578063d547741f146105c0578063e38335e5146105e0578063f23a6e61146105f3578063f27a0c921461063857600080fd5b8063bc197c811461052e578063c4d252f514610573578063d45c44351461059357600080fd5b806391d14854116100c657806391d1485414610481578063a217fddf146104c5578063b08e51c0146104da578063b1c5f4271461050e57600080fd5b80638065657f1461040d5780638f2a0bb01461042d5780638f61f4f51461044d57600080fd5b80632ab0f5291161015957806336568abe1161013357806336568abe14610380578063584b153e146103a057806364d62353146103c05780637958004c146103e057600080fd5b80632ab0f529146103205780632f2ff15d1461034057806331d507501461036057600080fd5b8063134008d311610195578063134008d31461026057806313bc9f2014610273578063150b7a0214610293578063248a9ca3146102f057600080fd5b806301d5062a146101c757806301ffc9a7146101e957806307bd02651461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e23660046113de565b61064d565b005b3480156101f557600080fd5b50610209610204366004611453565b610723565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b506102527fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610215565b6101e761026e36600461147d565b610734565b34801561027f57600080fd5b5061020961028e3660046114e9565b61082c565b34801561029f57600080fd5b506102d76102ae3660046115b9565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b03199091168152602001610215565b3480156102fc57600080fd5b5061025261030b3660046114e9565b60009081526020819052604090206001015490565b34801561032c57600080fd5b5061020961033b3660046114e9565b610852565b34801561034c57600080fd5b506101e761035b366004611621565b61085b565b34801561036c57600080fd5b5061020961037b3660046114e9565b610886565b34801561038c57600080fd5b506101e761039b366004611621565b6108ab565b3480156103ac57600080fd5b506102096103bb3660046114e9565b6108fc565b3480156103cc57600080fd5b506101e76103db3660046114e9565b610942565b3480156103ec57600080fd5b506104006103fb3660046114e9565b6109ce565b6040516102159190611663565b34801561041957600080fd5b5061025261042836600461147d565b610a19565b34801561043957600080fd5b506101e76104483660046116d0565b610a58565b34801561045957600080fd5b506102527fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b34801561048d57600080fd5b5061020961049c366004611621565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156104d157600080fd5b50610252600081565b3480156104e657600080fd5b506102527ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b34801561051a57600080fd5b50610252610529366004611782565b610bfc565b34801561053a57600080fd5b506102d76105493660046118ab565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561057f57600080fd5b506101e761058e3660046114e9565b610c41565b34801561059f57600080fd5b506102526105ae3660046114e9565b60009081526001602052604090205490565b3480156105cc57600080fd5b506101e76105db366004611621565b610cec565b6101e76105ee366004611782565b610d11565b3480156105ff57600080fd5b506102d761060e366004611955565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b34801561064457600080fd5b50600254610252565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161067781610ef1565b6000610687898989898989610a19565b90506106938184610efe565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a6040516106cf969594939291906119e3565b60405180910390a3831561071857807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d03878560405161070f91815260200190565b60405180910390a25b505050505050505050565b600061072e82610fab565b92915050565b600080527fdae2aa361dfd1ca020a396615627d436107c35eff9fe7738a3512819782d70696020527f5ba6852781629bcdcd4bdaa6de76d786f1c64b16acdac474e55bebc0ea157951547fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e639060ff166107b1576107b18133610fe9565b60006107c1888888888888610a19565b90506107cd8185611059565b6107d9888888886110c0565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516108119493929190611a21565b60405180910390a361082281611138565b5050505050505050565b600060025b61083a836109ce565b600381111561084b5761084b61164d565b1492915050565b60006003610831565b60008281526020819052604090206001015461087681610ef1565b6108808383611164565b50505050565b600080610892836109ce565b60038111156108a3576108a361164d565b141592915050565b6001600160a01b03811633146108ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108f7828261120e565b505050565b600080610908836109ce565b9050600181600381111561091e5761091e61164d565b148061093b575060028160038111156109395761093961164d565b145b9392505050565b3330811461098c576040517fe2850c590000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024015b60405180910390fd5b60025460408051918252602082018490527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a150600255565b600081815260016020526040812054806000036109ee5750600092915050565b600181036109ff5750600392915050565b42811115610a105750600192915050565b50600292915050565b6000868686868686604051602001610a36969594939291906119e3565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610a8281610ef1565b8887141580610a915750888514155b15610ad9576040517fffb03211000000000000000000000000000000000000000000000000000000008152600481018a90526024810186905260448101889052606401610983565b6000610aeb8b8b8b8b8b8b8b8b610bfc565b9050610af78184610efe565b60005b8a811015610bad5780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610b3757610b37611a54565b9050602002016020810190610b4c9190611a6a565b8d8d86818110610b5e57610b5e611a54565b905060200201358c8c87818110610b7757610b77611a54565b9050602002810190610b899190611a85565b8c8b604051610b9d969594939291906119e3565b60405180910390a3600101610afa565b508315610bef57807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610be691815260200190565b60405180910390a25b5050505050505050505050565b60008888888888888888604051602001610c1d989796959493929190611b63565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610c6b81610ef1565b610c74826108fc565b610cb05781610c836002611291565b610c8d6001611291565b604051635ead8eb560e01b81526004810193909352176024820152604401610983565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610d0781610ef1565b610880838361120e565b600080527fdae2aa361dfd1ca020a396615627d436107c35eff9fe7738a3512819782d70696020527f5ba6852781629bcdcd4bdaa6de76d786f1c64b16acdac474e55bebc0ea157951547fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e639060ff16610d8e57610d8e8133610fe9565b8786141580610d9d5750878414155b15610de5576040517fffb03211000000000000000000000000000000000000000000000000000000008152600481018990526024810185905260448101879052606401610983565b6000610df78a8a8a8a8a8a8a8a610bfc565b9050610e038185611059565b60005b89811015610edb5760008b8b83818110610e2257610e22611a54565b9050602002016020810190610e379190611a6a565b905060008a8a84818110610e4d57610e4d611a54565b9050602002013590503660008a8a86818110610e6b57610e6b611a54565b9050602002810190610e7d9190611a85565b91509150610e8d848484846110c0565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610ec49493929190611a21565b60405180910390a350505050806001019050610e06565b50610ee581611138565b50505050505050505050565b610efb8133610fe9565b50565b610f0782610886565b15610f395781610f176000611291565b604051635ead8eb560e01b815260048101929092526024820152604401610983565b6000610f4460025490565b905080821015610f8a576040517f543366090000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610983565b610f948242611c1d565b600093845260016020526040909320929092555050565b60006001600160e01b031982167f4e2312e000000000000000000000000000000000000000000000000000000000148061072e575061072e826112b4565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16611055576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260248101839052604401610983565b5050565b6110628261082c565b6110715781610f176002611291565b8015801590611086575061108481610852565b155b15611055576040517f90a9a61800000000000000000000000000000000000000000000000000000000815260048101829052602401610983565b600080856001600160a01b03168585856040516110de929190611c3e565b60006040518083038185875af1925050503d806000811461111b576040519150601f19603f3d011682016040523d82523d6000602084013e611120565b606091505b509150915061112f828261131b565b50505050505050565b6111418161082c565b6111505780610f176002611291565b600090815260016020819052604090912055565b6000828152602081815260408083206001600160a01b038516845290915281205460ff16611206576000838152602081815260408083206001600160a01b03861684529091529020805460ff191660011790556111be3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600161072e565b50600061072e565b6000828152602081815260408083206001600160a01b038516845290915281205460ff1615611206576000838152602081815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a450600161072e565b60008160038111156112a5576112a561164d565b600160ff919091161b92915050565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061072e57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b031983161461072e565b6060826113305761132b82611337565b61072e565b508061072e565b8051156113475780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b038116811461139057600080fd5b919050565b60008083601f8401126113a757600080fd5b50813567ffffffffffffffff8111156113bf57600080fd5b6020830191508360208285010111156113d757600080fd5b9250929050565b600080600080600080600060c0888a0312156113f957600080fd5b61140288611379565b965060208801359550604088013567ffffffffffffffff81111561142557600080fd5b6114318a828b01611395565b989b979a50986060810135976080820135975060a09091013595509350505050565b60006020828403121561146557600080fd5b81356001600160e01b03198116811461093b57600080fd5b60008060008060008060a0878903121561149657600080fd5b61149f87611379565b955060208701359450604087013567ffffffffffffffff8111156114c257600080fd5b6114ce89828a01611395565b979a9699509760608101359660809091013595509350505050565b6000602082840312156114fb57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561154157611541611502565b604052919050565b600082601f83011261155a57600080fd5b813567ffffffffffffffff81111561157457611574611502565b611587601f8201601f1916602001611518565b81815284602083860101111561159c57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156115cf57600080fd5b6115d885611379565b93506115e660208601611379565b925060408501359150606085013567ffffffffffffffff81111561160957600080fd5b61161587828801611549565b91505092959194509250565b6000806040838503121561163457600080fd5b8235915061164460208401611379565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b602081016004831061168557634e487b7160e01b600052602160045260246000fd5b91905290565b60008083601f84011261169d57600080fd5b50813567ffffffffffffffff8111156116b557600080fd5b6020830191508360208260051b85010111156113d757600080fd5b600080600080600080600080600060c08a8c0312156116ee57600080fd5b893567ffffffffffffffff8082111561170657600080fd5b6117128d838e0161168b565b909b50995060208c013591508082111561172b57600080fd5b6117378d838e0161168b565b909950975060408c013591508082111561175057600080fd5b5061175d8c828d0161168b565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b03121561179e57600080fd5b883567ffffffffffffffff808211156117b657600080fd5b6117c28c838d0161168b565b909a50985060208b01359150808211156117db57600080fd5b6117e78c838d0161168b565b909850965060408b013591508082111561180057600080fd5b5061180d8b828c0161168b565b999c989b509699959896976060870135966080013595509350505050565b600082601f83011261183c57600080fd5b8135602067ffffffffffffffff82111561185857611858611502565b8160051b611867828201611518565b928352848101820192828101908785111561188157600080fd5b83870192505b848310156118a057823582529183019190830190611887565b979650505050505050565b600080600080600060a086880312156118c357600080fd5b6118cc86611379565b94506118da60208701611379565b9350604086013567ffffffffffffffff808211156118f757600080fd5b61190389838a0161182b565b9450606088013591508082111561191957600080fd5b61192589838a0161182b565b9350608088013591508082111561193b57600080fd5b5061194888828901611549565b9150509295509295909350565b600080600080600060a0868803121561196d57600080fd5b61197686611379565b945061198460208701611379565b93506040860135925060608601359150608086013567ffffffffffffffff8111156119ae57600080fd5b61194888828901611549565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038716815285602082015260a060408201526000611a0c60a0830186886119ba565b60608301949094525060800152949350505050565b6001600160a01b0385168152836020820152606060408201526000611a4a6060830184866119ba565b9695505050505050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611a7c57600080fd5b61093b82611379565b6000808335601e19843603018112611a9c57600080fd5b83018035915067ffffffffffffffff821115611ab757600080fd5b6020019150368190038213156113d757600080fd5b6000838385526020808601955060208560051b8301018460005b87811015611b5657848303601f19018952813536889003601e19018112611b0c57600080fd5b8701848101903567ffffffffffffffff811115611b2857600080fd5b803603821315611b3757600080fd5b611b428582846119ba565b9a86019a9450505090830190600101611ae6565b5090979650505050505050565b60a0808252810188905260008960c08301825b8b811015611ba4576001600160a01b03611b8f84611379565b16825260209283019290910190600101611b76565b5083810360208501528881527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff891115611bdd57600080fd5b8860051b9150818a60208301370182810360209081016040850152611c059082018789611acc565b60608401959095525050608001529695505050505050565b8082018082111561072e57634e487b7160e01b600052601160045260246000fd5b818382376000910190815291905056fea26469706673582212205945600c74fcd6e49036d2c66dc046a118b0edbf62cbeca3a9a81768f86d2da764736f6c634300081800336101606040523480156200001257600080fd5b5060405162002a3738038062002a378339810160408190526200003591620002a7565b6040805180820190915260018152603160f81b6020820152829081908582856003620000628382620003c2565b506004620000718282620003c2565b5050600580546001600160a01b0319166001600160a01b03939093169290921790915550620000a282600662000155565b61012052620000b381600762000155565b61014052815160208084019190912060e052815190820120610100524660a0526200014160e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c05250620004e892505050565b600060208351101562000175576200016d836200018e565b905062000188565b81620001828482620003c2565b5060ff90505b92915050565b600080829050601f81511115620001c5578260405163305a27a960e01b8152600401620001bc91906200048e565b60405180910390fd5b8051620001d282620004c3565b179392505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200020d578181015183820152602001620001f3565b50506000910152565b600082601f8301126200022857600080fd5b81516001600160401b0380821115620002455762000245620001da565b604051601f8301601f19908116603f01168101908282118183101715620002705762000270620001da565b816040528381528660208588010111156200028a57600080fd5b6200029d846020830160208901620001f0565b9695505050505050565b600080600060608486031215620002bd57600080fd5b83516001600160a01b0381168114620002d557600080fd5b60208501519093506001600160401b0380821115620002f357600080fd5b620003018783880162000216565b935060408601519150808211156200031857600080fd5b50620003278682870162000216565b9150509250925092565b600181811c908216806200034657607f821691505b6020821081036200036757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003bd576000816000526020600020601f850160051c81016020861015620003985750805b601f850160051c820191505b81811015620003b957828155600101620003a4565b5050505b505050565b81516001600160401b03811115620003de57620003de620001da565b620003f681620003ef845462000331565b846200036d565b602080601f8311600181146200042e5760008415620004155750858301515b600019600386901b1c1916600185901b178555620003b9565b600085815260208120601f198616915b828110156200045f578886015182559484019460019091019084016200043e565b50858210156200047e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260008251806020840152620004af816040850160208701620001f0565b601f01601f19169190910160400192915050565b80516020808301519190811015620003675760001960209190910360031b1b16919050565b60805160a05160c05160e0516101005161012051610140516124f4620005436000396000610fc701526000610f9a01526000610ca501526000610c7d01526000610bd801526000610c0201526000610c2c01526124f46000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c806370a08231116100f957806395d89b4111610097578063c3cda52011610071578063c3cda520146103d1578063d505accf146103e4578063dd62ed3e146103f7578063f1127ed81461043057600080fd5b806395d89b41146103a35780639ab24eb0146103ab578063a9059cbb146103be57600080fd5b806384b0196e116100d357806384b0196e1461034c5780638da5cb5b146103675780638e539e8c1461037a57806391ddadf41461038d57600080fd5b806370a08231146102fd5780637c88e3d9146103265780637ecebe001461033957600080fd5b80633a46b1a811610166578063587cde1e11610140578063587cde1e1461026b5780635c19a95c146102af578063671c6eca146102c25780636fcfff45146102d557600080fd5b80633a46b1a81461023b57806340c10f191461024e5780634bf5d7e91461026357600080fd5b806323b872dd1161019757806323b872dd14610211578063313ce567146102245780633644e5151461023357600080fd5b806306fdde03146101be578063095ea7b3146101dc57806318160ddd146101ff575b600080fd5b6101c661046f565b6040516101d39190611e38565b60405180910390f35b6101ef6101ea366004611e67565b610501565b60405190151581526020016101d3565b6002545b6040519081526020016101d3565b6101ef61021f366004611e91565b61051b565b604051601281526020016101d3565b61020361053f565b610203610249366004611e67565b61054e565b61026161025c366004611e67565b6105ca565b005b6101c6610621565b610297610279366004611ecd565b6001600160a01b039081166000908152600960205260409020541690565b6040516001600160a01b0390911681526020016101d3565b6102616102bd366004611ecd565b6106ab565b6102616102d0366004611fc2565b6106b6565b6102e86102e3366004611ecd565b6106c0565b60405163ffffffff90911681526020016101d3565b61020361030b366004611ecd565b6001600160a01b031660009081526020819052604090205490565b610261610334366004611fc2565b6106cb565b610203610347366004611ecd565b610714565b61035461071f565b6040516101d39796959493929190612082565b600554610297906001600160a01b031681565b610203610388366004612137565b610781565b60405165ffffffffffff421681526020016101d3565b6101c66107e1565b6102036103b9366004611ecd565b6107f0565b6101ef6103cc366004611e67565b610820565b6102616103df366004612161565b610843565b6102616103f23660046121b9565b610919565b610203610405366004612223565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61044361043e366004612256565b610a85565b60408051825165ffffffffffff1681526020928301516001600160d01b031692810192909252016101d3565b60606003805461047e90612296565b80601f01602080910402602001604051908101604052809291908181526020018280546104aa90612296565b80156104f75780601f106104cc576101008083540402835291602001916104f7565b820191906000526020600020905b8154815290600101906020018083116104da57829003601f168201915b5050505050905090565b60003361050f818585610aaa565b60019150505b92915050565b600033610529858285610abc565b610534858585610b53565b506001949350505050565b6000610549610bcb565b905090565b60004265ffffffffffff8116831061058f57604051637669fc0f60e11b81526004810184905265ffffffffffff821660248201526044015b60405180910390fd5b6105b961059b84610cf6565b6001600160a01b0386166000908152600a6020526040902090610d2d565b6001600160d01b0316949350505050565b6005546001600160a01b031633146106135760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610586565b61061d8282610de6565b5050565b606061062b610e1c565b65ffffffffffff164265ffffffffffff1614610673576040517f6ff0714000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b3361061d8183610e27565b61061d8282610eb1565b600061051582610f53565b6005546001600160a01b031633146106b65760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610586565b600061051582610f75565b600060608060008060006060610733610f93565b61073b610fc0565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b60004265ffffffffffff811683106107bd57604051637669fc0f60e11b81526004810184905265ffffffffffff82166024820152604401610586565b6107d16107c984610cf6565b600b90610d2d565b6001600160d01b03169392505050565b60606004805461047e90612296565b6001600160a01b0381166000908152600a6020526040812061081190610fed565b6001600160d01b031692915050565b60003361050f81856108346012600a6123ca565b61083e90876123d6565b610b53565b83421115610880576040517f4683af0e00000000000000000000000000000000000000000000000000000000815260048101859052602401610586565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590526000906108fa906108f29060a00160405160208183030381529060405280519060200120611029565b858585611071565b9050610906818761109f565b6109108188610e27565b50505050505050565b83421115610956576040517f6279130200000000000000000000000000000000000000000000000000000000815260048101859052602401610586565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886109a38c6001600160a01b0316600090815260086020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006109fe82611029565b90506000610a0e82878787611071565b9050896001600160a01b0316816001600160a01b031614610a6e576040517f4b800e460000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301528b166024820152604401610586565b610a798a8a8a610aaa565b50505050505050505050565b6040805180820190915260008082526020820152610aa3838361110b565b9392505050565b610ab78383836001611141565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610b4d5781811015610b3e576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610586565b610b4d84848484036000611141565b50505050565b6001600160a01b038316610b96576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610586565b6001600160a01b038216610bc05760405163ec442f0560e01b815260006004820152602401610586565b610ab7838383611248565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015610c2457507f000000000000000000000000000000000000000000000000000000000000000046145b15610c4e57507f000000000000000000000000000000000000000000000000000000000000000090565b610549604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b600065ffffffffffff821115610d29576040516306dfcc6560e41b81526030600482015260248101839052604401610586565b5090565b815460009081816005811115610d8c576000610d4884611253565b610d5290856123ed565b60008881526020902090915081015465ffffffffffff9081169087161015610d7c57809150610d8a565b610d87816001612400565b92505b505b6000610d9a8787858561133b565b90508015610dd857610dbf87610db16001846123ed565b600091825260209091200190565b54660100000000000090046001600160d01b0316610ddb565b60005b979650505050505050565b6001600160a01b038216610e105760405163ec442f0560e01b815260006004820152602401610586565b61061d60008383611248565b600061054943610cf6565b6001600160a01b0382811660008181526009602052604080822080548686167fffffffffffffffffffffffff0000000000000000000000000000000000000000821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610ab78183610eac8661139d565b6113bb565b8051825114610f025760405162461bcd60e51b815260206004820152601360248201527f4c656e6774687320646f6e2774206d61746368000000000000000000000000006044820152606401610586565b815160005b81811015610b4d57610f4b848281518110610f2457610f24612413565b6020026020010151848381518110610f3e57610f3e612413565b6020026020010151610de6565b600101610f07565b6001600160a01b0381166000908152600a602052604081205461051590611527565b6001600160a01b038116600090815260086020526040812054610515565b60606105497f00000000000000000000000000000000000000000000000000000000000000006006611558565b60606105497f00000000000000000000000000000000000000000000000000000000000000006007611558565b805460009080156110205761100783610db16001846123ed565b54660100000000000090046001600160d01b0316610aa3565b60009392505050565b6000610515611036610bcb565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b60008060008061108388888888611603565b92509250925061109382826116d2565b50909695505050505050565b6001600160a01b0382166000908152600860205260409020805460018101909155818114610ab7576040517f752d88c00000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604401610586565b60408051808201909152600080825260208201526001600160a01b0383166000908152600a60205260409020610aa390836117d6565b6001600160a01b038416611184576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610586565b6001600160a01b0383166111c7576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610586565b6001600160a01b0380851660009081526001602090815260408083209387168352929052208290558015610b4d57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161123a91815260200190565b60405180910390a350505050565b610ab7838383611849565b60008160000361126557506000919050565b60006001611272846118c9565b901c6001901b9050600181848161128b5761128b612429565b048201901c905060018184816112a3576112a3612429565b048201901c905060018184816112bb576112bb612429565b048201901c905060018184816112d3576112d3612429565b048201901c905060018184816112eb576112eb612429565b048201901c9050600181848161130357611303612429565b048201901c9050600181848161131b5761131b612429565b048201901c9050610aa38182858161133557611335612429565b0461195d565b60005b818310156113955760006113528484611973565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff1611156113815780925061138f565b61138c816001612400565b93505b5061133e565b509392505050565b6001600160a01b038116600090815260208190526040812054610515565b816001600160a01b0316836001600160a01b0316141580156113dd5750600081115b15610ab7576001600160a01b03831615611485576001600160a01b0383166000908152600a6020526040812081906114209061198e61141b8661199a565b6119ce565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161147a929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610ab7576001600160a01b0382166000908152600a6020526040812081906114be90611a0061141b8661199a565b6001600160d01b031691506001600160d01b03169150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611518929190918252602082015260400190565b60405180910390a25050505050565b600063ffffffff821115610d29576040516306dfcc6560e41b81526020600482015260248101839052604401610586565b606060ff83146115725761156b83611a0c565b9050610515565b81805461157e90612296565b80601f01602080910402602001604051908101604052809291908181526020018280546115aa90612296565b80156115f75780601f106115cc576101008083540402835291602001916115f7565b820191906000526020600020905b8154815290600101906020018083116115da57829003601f168201915b50505050509050610515565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561163e57506000915060039050826116c8565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611692573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116be575060009250600191508290506116c8565b9250600091508190505b9450945094915050565b60008260038111156116e6576116e661243f565b036116ef575050565b60018260038111156117035761170361243f565b0361173a576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600282600381111561174e5761174e61243f565b03611788576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610586565b600382600381111561179c5761179c61243f565b0361061d576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610586565b6040805180820190915260008082526020820152826000018263ffffffff168154811061180557611805612413565b60009182526020918290206040805180820190915291015465ffffffffffff81168252660100000000000090046001600160d01b0316918101919091529392505050565b611854838383611a4b565b6001600160a01b0383166118be57600061186d60025490565b90506001600160d01b03808211156118bb576040517f1cb15d260000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610586565b50505b610ab7838383611b8e565b600080608083901c156118de57608092831c92015b604083901c156118f057604092831c92015b602083901c1561190257602092831c92015b601083901c1561191457601092831c92015b600883901c1561192657600892831c92015b600483901c1561193857600492831c92015b600283901c1561194a57600292831c92015b600183901c156105155760010192915050565b600081831061196c5781610aa3565b5090919050565b60006119826002848418612455565b610aa390848416612400565b6000610aa38284612477565b60006001600160d01b03821115610d29576040516306dfcc6560e41b815260d0600482015260248101839052604401610586565b6000806119f3426119eb6119e188610fed565b868863ffffffff16565b879190611c04565b915091505b935093915050565b6000610aa3828461249e565b60606000611a1983611c12565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6001600160a01b038316611a76578060026000828254611a6b9190612400565b90915550611b019050565b6001600160a01b03831660009081526020819052604090205481811015611ae2576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024810182905260448101839052606401610586565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216611b1d57600280548290039055611b3c565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b8191815260200190565b60405180910390a3505050565b6001600160a01b038316611bb057611bad600b611a0061141b8461199a565b50505b6001600160a01b038216611bd257611bcf600b61198e61141b8461199a565b50505b6001600160a01b03838116600090815260096020526040808220548584168352912054610ab7929182169116836113bb565b6000806119f3858585611c53565b600060ff8216601f811115610515576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825460009081908015611d94576000611c7187610db16001856123ed565b60408051808201909152905465ffffffffffff80821680845266010000000000009092046001600160d01b031660208401529192509087161015611ce1576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805165ffffffffffff808816911603611d305784611d0488610db16001866123ed565b80546001600160d01b039290921666010000000000000265ffffffffffff909216919091179055611d84565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d815291909120945191519092166601000000000000029216919091179101555b6020015192508391506119f89050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a81529182209551925190931666010000000000000291909316179201919091559050816119f8565b6000815180845260005b81811015611e1857602081850181015186830182015201611dfc565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610aa36020830184611df2565b80356001600160a01b0381168114611e6257600080fd5b919050565b60008060408385031215611e7a57600080fd5b611e8383611e4b565b946020939093013593505050565b600080600060608486031215611ea657600080fd5b611eaf84611e4b565b9250611ebd60208501611e4b565b9150604084013590509250925092565b600060208284031215611edf57600080fd5b610aa382611e4b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611f2757611f27611ee8565b604052919050565b600067ffffffffffffffff821115611f4957611f49611ee8565b5060051b60200190565b600082601f830112611f6457600080fd5b81356020611f79611f7483611f2f565b611efe565b8083825260208201915060208460051b870101935086841115611f9b57600080fd5b602086015b84811015611fb75780358352918301918301611fa0565b509695505050505050565b60008060408385031215611fd557600080fd5b823567ffffffffffffffff80821115611fed57600080fd5b818501915085601f83011261200157600080fd5b81356020612011611f7483611f2f565b82815260059290921b8401810191818101908984111561203057600080fd5b948201945b838610156120555761204686611e4b565b82529482019490820190612035565b9650508601359250508082111561206b57600080fd5b5061207885828601611f53565b9150509250929050565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e060208401526120bf60e084018a611df2565b83810360408501526120d1818a611df2565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b8181101561212557835183529284019291840191600101612109565b50909c9b505050505050505050505050565b60006020828403121561214957600080fd5b5035919050565b803560ff81168114611e6257600080fd5b60008060008060008060c0878903121561217a57600080fd5b61218387611e4b565b9550602087013594506040870135935061219f60608801612150565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a0312156121d457600080fd5b6121dd88611e4b565b96506121eb60208901611e4b565b9550604088013594506060880135935061220760808901612150565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561223657600080fd5b61223f83611e4b565b915061224d60208401611e4b565b90509250929050565b6000806040838503121561226957600080fd5b61227283611e4b565b9150602083013563ffffffff8116811461228b57600080fd5b809150509250929050565b600181811c908216806122aa57607f821691505b6020821081036122ca57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612321578160001904821115612307576123076122d0565b8085161561231457918102915b93841c93908002906122eb565b509250929050565b60008261233857506001610515565b8161234557506000610515565b816001811461235b576002811461236557612381565b6001915050610515565b60ff841115612376576123766122d0565b50506001821b610515565b5060208310610133831016604e8410600b84101617156123a4575081810a610515565b6123ae83836122e6565b80600019048211156123c2576123c26122d0565b029392505050565b6000610aa38383612329565b8082028115828204841417610515576105156122d0565b81810381811115610515576105156122d0565b80820180821115610515576105156122d0565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b60008261247257634e487b7160e01b600052601260045260246000fd5b500490565b6001600160d01b03828116828216039080821115612497576124976122d0565b5092915050565b6001600160d01b03818116838216019080821115612497576124976122d056fea2646970667358221220647a039bc759587efe1d311c4a84fc46c4d08dd28fd928b9e0fab820d5299bdc64736f6c634300081800336101806040523480156200001257600080fd5b50604051620056d9380380620056d98339810160408190526200003591620007e5565b8481878585600089806200005d6040805180820190915260018152603160f81b602082015290565b6200006a82600062000178565b610120526200007b81600162000178565b61014052815160208084019190912060e052815190820120610100524660a0526200010960e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c052600362000120828262000989565b506200012e905083620001b1565b620001398262000217565b6200014481620002be565b5050506001600160a01b0316610160526200015f81620002ff565b506200016b816200039f565b5050505050505062000aef565b60006020835110156200019857620001908362000408565b9050620001ab565b81620001a5848262000989565b5060ff90505b92915050565b6008546040805165ffffffffffff928316815291831660208301527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a16008805465ffffffffffff191665ffffffffffff92909216919091179055565b8063ffffffff16600003620002475760405163f1cfbf0560e01b8152600060048201526024015b60405180910390fd5b6008546040805163ffffffff66010000000000009093048316815291831660208301527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a16008805463ffffffff90921666010000000000000263ffffffff60301b19909216919091179055565b60075460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600755565b6064808211156200032e5760405163243e544560e01b815260048101839052602481018290526044016200023e565b60006200033a6200044b565b90506200035f6200034a62000467565b6200035585620004e9565b600a919062000523565b505060408051828152602081018590527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a1505050565b600b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600b80546001600160a01b0319166001600160a01b0392909216919091179055565b600080829050601f8151111562000436578260405163305a27a960e01b81526004016200023e919062000a55565b8051620004438262000a8a565b179392505050565b600062000459600a62000540565b6001600160d01b0316905090565b6000620004746101605190565b6001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620004d0575060408051601f3d908101601f19168201909252620004cd9181019062000aaf565b60015b620004e457620004df62000590565b905090565b919050565b60006001600160d01b038211156200051f576040516306dfcc6560e41b815260d06004820152602481018390526044016200023e565b5090565b600080620005338585856200059d565b915091505b935093915050565b8054600090801562000586576200056c836200055e60018462000acd565b600091825260209091200190565b54660100000000000090046001600160d01b031662000589565b60005b9392505050565b6000620004df436200072f565b825460009081908015620006d0576000620005bf876200055e60018562000acd565b60408051808201909152905465ffffffffffff80821680845266010000000000009092046001600160d01b0316602084015291925090871610156200061757604051632520601d60e01b815260040160405180910390fd5b805165ffffffffffff8088169116036200066b57846200063e886200055e60018662000acd565b80546001600160d01b039290921666010000000000000265ffffffffffff909216919091179055620006bf565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d815291909120945191519092166601000000000000029216919091179101555b602001519250839150620005389050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316660100000000000002919093161792019190915590508162000538565b600065ffffffffffff8211156200051f576040516306dfcc6560e41b815260306004820152602481018390526044016200023e565b6001600160a01b03811681146200077a57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620007b057818101518382015260200162000796565b50506000910152565b805165ffffffffffff81168114620004e457600080fd5b805163ffffffff81168114620004e457600080fd5b60008060008060008060c08789031215620007ff57600080fd5b86516200080c8162000764565b60208801519096506200081f8162000764565b60408801519095506001600160401b03808211156200083d57600080fd5b818901915089601f8301126200085257600080fd5b8151818111156200086757620008676200077d565b604051601f8201601f19908116603f011681019083821181831017156200089257620008926200077d565b816040528281528c6020848701011115620008ac57600080fd5b620008bf83602083016020880162000793565b8098505050505050620008d560608801620007b9565b9250620008e560808801620007d0565b915060a087015190509295509295509295565b600181811c908216806200090d57607f821691505b6020821081036200092e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000984576000816000526020600020601f850160051c810160208610156200095f5750805b601f850160051c820191505b8181101562000980578281556001016200096b565b5050505b505050565b81516001600160401b03811115620009a557620009a56200077d565b620009bd81620009b68454620008f8565b8462000934565b602080601f831160018114620009f55760008415620009dc5750858301515b600019600386901b1c1916600185901b17855562000980565b600085815260208120601f198616915b8281101562000a265788860151825594840194600190910190840162000a05565b508582101562000a455787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000825180602084015262000a7681604085016020870162000793565b601f01601f19169190910160400192915050565b805160208083015191908110156200092e5760001960209190910360031b1b16919050565b60006020828403121562000ac257600080fd5b6200058982620007b9565b81810381811115620001ab57634e487b7160e01b600052601160045260246000fd5b60805160a05160c05160e05161010051610120516101405161016051614b6862000b7160003960008181610b0c015281816110de015281816116f7015281816124c401526127760152600061248f0152600061246201526000612e5b01526000612e3301526000612d8e01526000612db801526000612de20152614b686000f3fe6080604052600436106103385760003560e01c80637d5e81e2116101b0578063bc197c81116100ec578063deaaa7cc11610095578063ece40cc11161006f578063ece40cc114610a9d578063f23a6e6114610abd578063f8ce560a14610add578063fc0c546a14610afd57600080fd5b8063deaaa7cc14610a29578063e540d01d14610a5d578063eb9019d414610a7d57600080fd5b8063c59057e4116100c6578063c59057e4146109a5578063d33219b4146109c5578063dd4e2ba5146109e357600080fd5b8063bc197c8114610952578063c01f9e3714610972578063c28bc2fa1461099257600080fd5b806397c3d33411610159578063a890c91011610133578063a890c910146108c5578063a9a95294146108e5578063ab58fb8e14610905578063b58131b01461093d57600080fd5b806397c3d3341461087c5780639a802a6d14610890578063a7713a70146108b057600080fd5b80638d03b1021161018a5780638d03b1021461081b5780638ff262e31461083057806391ddadf41461085057600080fd5b80637d5e81e21461079d5780637ecebe00146107bd57806384b0196e146107f357600080fd5b80633932abb11161027f57806354fd4d50116102285780635f398a14116102025780635f398a141461071d57806360c4247f1461073d578063790518871461075d5780637b3c71d31461077d57600080fd5b806354fd4d501461069757806356781388146106dd5780635b8d0e0d146106fd57600080fd5b8063452115d611610259578063452115d61461060d5780634bf5d7e91461062d578063544ffc9c1461064257600080fd5b80633932abb1146105815780633e4f49e61461059657806343859632146105c357600080fd5b8063160cbed7116102e15780632d63f693116102bb5780632d63f693146104f15780632fe3e2611461052d57806335fbf9781461056157600080fd5b8063160cbed71461049e5780632656227d146104be5780632cda1bf7146104d157600080fd5b806306fdde031161031257806306fdde03146103f5578063143489d014610417578063150b7a021461046557600080fd5b806301ffc9a71461037457806302a251a3146103a957806306f3f9e6146103d557600080fd5b3661036f5730610346610b30565b6001600160a01b03161461036d57604051637485328f60e11b815260040160405180910390fd5b005b600080fd5b34801561038057600080fd5b5061039461038f3660046138d8565b610b49565b60405190151581526020015b60405180910390f35b3480156103b557600080fd5b50600854600160301b900463ffffffff165b6040519081526020016103a0565b3480156103e157600080fd5b5061036d6103f0366004613902565b610be6565b34801561040157600080fd5b5061040a610bfa565b6040516103a0919061396b565b34801561042357600080fd5b5061044d610432366004613902565b6000908152600460205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016103a0565b34801561047157600080fd5b50610485610480366004613a58565b610c8c565b6040516001600160e01b031990911681526020016103a0565b3480156104aa57600080fd5b506103c76104b9366004613c2f565b610ce8565b6103c76104cc366004613c2f565b610dd0565b3480156104dd57600080fd5b5061040a6104ec366004613902565b610f60565b3480156104fd57600080fd5b506103c761050c366004613902565b600090815260046020526040902054600160a01b900465ffffffffffff1690565b34801561053957600080fd5b506103c77f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a81181565b34801561056d57600080fd5b506103c761057c366004613cbf565b610ffa565b34801561058d57600080fd5b506103c761102f565b3480156105a257600080fd5b506105b66105b1366004613902565b611042565b6040516103a09190613dc9565b3480156105cf57600080fd5b506103946105de366004613dd7565b60008281526009602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561061957600080fd5b506103c7610628366004613c2f565b61104d565b34801561063957600080fd5b5061040a6110da565b34801561064e57600080fd5b5061067c61065d366004613902565b6000908152600960205260409020805460018201546002909201549092565b604080519384526020840192909252908201526060016103a0565b3480156106a357600080fd5b5060408051808201909152600181527f3100000000000000000000000000000000000000000000000000000000000000602082015261040a565b3480156106e957600080fd5b506103c76106f8366004613e18565b61119c565b34801561070957600080fd5b506103c7610718366004613e8d565b6111c5565b34801561072957600080fd5b506103c7610738366004613f48565b611324565b34801561074957600080fd5b506103c7610758366004613902565b611379565b34801561076957600080fd5b5061036d610778366004613fc6565b611407565b34801561078957600080fd5b506103c7610798366004613fe3565b611418565b3480156107a957600080fd5b506103c76107b836600461403d565b611460565b3480156107c957600080fd5b506103c76107d83660046140de565b6001600160a01b031660009081526002602052604090205490565b3480156107ff57600080fd5b5061080861154f565b6040516103a09796959493929190614137565b34801561082757600080fd5b5061036d6115b1565b34801561083c57600080fd5b506103c761084b3660046141c1565b611621565b34801561085c57600080fd5b506108656116f3565b60405165ffffffffffff90911681526020016103a0565b34801561088857600080fd5b5060646103c7565b34801561089c57600080fd5b506103c76108ab366004614213565b61177b565b3480156108bc57600080fd5b506103c7611788565b3480156108d157600080fd5b5061036d6108e03660046140de565b6117a2565b3480156108f157600080fd5b50610394610900366004613902565b6117b3565b34801561091157600080fd5b506103c7610920366004613902565b60009081526004602052604090206001015465ffffffffffff1690565b34801561094957600080fd5b506103c76117bc565b34801561095e57600080fd5b5061048561096d36600461426c565b6117c7565b34801561097e57600080fd5b506103c761098d366004613902565b611824565b61036d6109a03660046142ea565b611867565b3480156109b157600080fd5b506103c76109c0366004613c2f565b6118e7565b3480156109d157600080fd5b50600b546001600160a01b031661044d565b3480156109ef57600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e9082015261040a565b348015610a3557600080fd5b506103c77ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d781565b348015610a6957600080fd5b5061036d610a7836600461432e565b611921565b348015610a8957600080fd5b506103c7610a98366004614354565b611932565b348015610aa957600080fd5b5061036d610ab8366004613902565b61195a565b348015610ac957600080fd5b50610485610ad8366004614380565b61196b565b348015610ae957600080fd5b506103c7610af8366004613902565b6119c8565b348015610b0957600080fd5b507f000000000000000000000000000000000000000000000000000000000000000061044d565b6000610b44600b546001600160a01b031690565b905090565b60006001600160e01b031982167f65455a86000000000000000000000000000000000000000000000000000000001480610bac57506001600160e01b031982167f4e2312e000000000000000000000000000000000000000000000000000000000145b80610be057507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b610bee6119d3565b610bf781611a66565b50565b606060038054610c09906143e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610c35906143e9565b8015610c825780601f10610c5757610100808354040283529160200191610c82565b820191906000526020600020905b815481529060010190602001808311610c6557829003601f168201915b5050505050905090565b600030610c97610b30565b6001600160a01b031614610cbe57604051637485328f60e11b815260040160405180910390fd5b507f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b600080610cf7868686866118e7565b9050610d0c81610d076004611b15565b611b38565b506000610d1c8288888888611b77565b905065ffffffffffff811615610d9457600082815260046020908152604091829020600101805465ffffffffffff191665ffffffffffff85169081179091558251858152918201527f9a2e42fd6722813d69113e7d0079d3d940171428df7373df9c7f7617cfda2892910160405180910390a1610dc6565b6040517f90884a4600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5095945050505050565b600080610ddf868686866118e7565b9050610dff81610def6005611b15565b610df96004611b15565b17611b38565b50600081815260046020526040902080547fff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f01b17905530610e43610b30565b6001600160a01b031614610ecd5760005b8651811015610ecb57306001600160a01b0316878281518110610e7957610e79614423565b60200260200101516001600160a01b031603610ec357610ec3858281518110610ea457610ea4614423565b6020026020010151805190602001206005611b8690919063ffffffff16565b600101610e54565b505b610eda8187878787611c22565b30610ee3610b30565b6001600160a01b031614158015610f1857506005546fffffffffffffffffffffffffffffffff808216600160801b9092041614155b15610f235760006005555b6040518181527f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f906020015b60405180910390a195945050505050565b600d6020526000908152604090208054610f79906143e9565b80601f0160208091040260200160405190810160405280929190818152602001828054610fa5906143e9565b8015610ff25780601f10610fc757610100808354040283529160200191610ff2565b820191906000526020600020905b815481529060010190602001808311610fd557829003601f168201915b505050505081565b60008061100987878787611460565b6000818152600d602052604090209091506110248482614486565b509695505050505050565b6000610b4460085465ffffffffffff1690565b6000610be082611c36565b60008061105c868686866118e7565b905061106c81610d076000611b15565b506000818152600460205260409020546001600160a01b031633146110c4576040517f233d98e30000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6110d086868686611da7565b9695505050505050565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634bf5d7e96040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561115b57506040513d6000823e601f3d908101601f191682016040526111589190810190614546565b60015b611197575060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b919050565b6000803390506111bd84828560405180602001604052806000815250611dbe565b949350505050565b6000806112a8876112a27f3e83946653575f9a39005e1545185629e92736b7528ab20ca3816f315424a8118c8c8c61121a8e6001600160a01b0316600090815260026020526040902080546001810190915590565b8d8d60405161122a9291906145b4565b60405180910390208c805190602001206040516020016112879796959493929190968752602087019590955260ff9390931660408601526001600160a01b03919091166060850152608084015260a083015260c082015260e00190565b60405160208183030381529060405280519060200120611de1565b85611e29565b9050806112d3576040516394ab6c0760e01b81526001600160a01b03881660048201526024016110bb565b61131789888a89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508b9250611e81915050565b9998505050505050505050565b60008033905061136e87828888888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508a9250611e81915050565b979650505050505050565b600a8054600091829061138d6001846145da565b8154811061139d5761139d614423565b6000918252602090912001805490915065ffffffffffff811690600160301b90046001600160d01b03168582116113e0576001600160d01b031695945050505050565b6113f46113ec87611f73565b600a90611faa565b6001600160d01b03169695505050505050565b61140f6119d3565b610bf78161205f565b6000803390506110d086828787878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611dbe92505050565b60003361146d81846120c5565b6114ae576040517fd9b395570000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016110bb565b60006114d58260016114be6116f3565b6114c891906145ed565b65ffffffffffff16611932565b905060006114e16117bc565b905080821015611536576040517fc242ee160000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101839052604481018290526064016110bb565b61154388888888876121e6565b98975050505050505050565b60006060806000806000606061156361245b565b61156b612488565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009b939a50919850469750309650945092509050565b604080518082018252600781527f74657374696e6700000000000000000000000000000000000000000000000000602082015290517f0fb7cb0ec74e58a9ae0386aa539bd19cacc53ea51408efdc655542da04e76ca490611616908390600190614613565b60405180910390a150565b6000806116ad846112a27ff2aad550cf55f045cb27e9c559f9889fdfb6e6cdaa032301d6ea397784ae51d78989896116768b6001600160a01b0316600090815260026020526040902080546001810190915590565b60408051602081019690965285019390935260ff90911660608401526001600160a01b0316608083015260a082015260c001611287565b9050806116d8576040516394ab6c0760e01b81526001600160a01b03851660048201526024016110bb565b6110d086858760405180602001604052806000815250611dbe565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166391ddadf46040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561176f575060408051601f3d908101601f1916820190925261176c91810190614637565b60015b61119757610b446124b5565b60006111bd8484846124c0565b6000611794600a61256f565b6001600160d01b0316905090565b6117aa6119d3565b610bf7816125a8565b60006001610be0565b6000610b4460075490565b6000306117d2610b30565b6001600160a01b0316146117f957604051637485328f60e11b815260040160405180910390fd5b507fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b60008181526004602052604081205461185990600160d01b810463ffffffff1690600160a01b900465ffffffffffff16614654565b65ffffffffffff1692915050565b61186f6119d3565b600080856001600160a01b031685858560405161188d9291906145b4565b60006040518083038185875af1925050503d80600081146118ca576040519150601f19603f3d011682016040523d82523d6000602084013e6118cf565b606091505b50915091506118de828261261e565b50505050505050565b6000848484846040516020016119009493929190614707565b60408051601f19818403018152919052805160209091012095945050505050565b6119296119d3565b610bf78161263a565b6000611953838361194e60408051602081019091526000815290565b6124c0565b9392505050565b6119626119d3565b610bf7816126f1565b600030611976610b30565b6001600160a01b03161461199d57604051637485328f60e11b815260040160405180910390fd5b507ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b6000610be082612732565b336119dc610b30565b6001600160a01b031614611a1e576040517f47096e470000000000000000000000000000000000000000000000000000000081523360048201526024016110bb565b30611a27610b30565b6001600160a01b031614611a645760008036604051611a479291906145b4565b604051809103902090505b80611a5d60056127f5565b03611a5257505b565b606480821115611aac576040517f243e544500000000000000000000000000000000000000000000000000000000815260048101839052602481018290526044016110bb565b6000611ab6611788565b9050611ad5611ac36116f3565b611acc856128ad565b600a91906128e1565b505060408051828152602081018590527f0553476bf02ef2726e8ce5ced78d63e26e602e4a2257b1f559418e24b4633997910160405180910390a1505050565b6000816007811115611b2957611b29613d91565b600160ff919091161b92915050565b600080611b4484611042565b9050600083611b5283611b15565b1603611953578381846040516331b75e4d60e01b81526004016110bb93929190614752565b60006110d086868686866128fc565b81546fffffffffffffffffffffffffffffffff600160801b820481169181166001830190911603611be3576040517f8acb5f2700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6fffffffffffffffffffffffffffffffff808216600090815260018086016020526040909120939093558354919092018216600160801b029116179055565b611c2f8585858585612acd565b5050505050565b600080611c4283612b63565b90506005816007811115611c5857611c58613d91565b14611c635792915050565b6000838152600c60205260409081902054600b5491517f584b153e0000000000000000000000000000000000000000000000000000000081526004810182905290916001600160a01b03169063584b153e90602401602060405180830381865afa158015611cd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf99190614774565b15611d08575060059392505050565b600b546040517f2ab0f529000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b0390911690632ab0f52990602401602060405180830381865afa158015611d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8e9190614774565b15611d9d575060079392505050565b5060029392505050565b6000611db585858585612cc9565b95945050505050565b6000611db585858585611ddc60408051602081019091526000815290565b611e81565b6000610be0611dee612d81565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000806000611e388585612eac565b5090925090506000816003811115611e5257611e52613d91565b148015611e705750856001600160a01b0316826001600160a01b0316145b806110d057506110d0868686612ef9565b6000611e9186610d076001611b15565b50600086815260046020526040812054611ebc908790600160a01b900465ffffffffffff16856124c0565b9050611ecb8787878487612fe9565b8251600003611f2057856001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda488878488604051611f139493929190614796565b60405180910390a26110d0565b856001600160a01b03167fe2babfbac5889a709b63bb7f598b324e08bc5a4fb9ec647fb3cbc9ec07eb87128887848888604051611f619594939291906147be565b60405180910390a29695505050505050565b600065ffffffffffff821115611fa6576040516306dfcc6560e41b815260306004820152602481018390526044016110bb565b5090565b815460009081816005811115612009576000611fc58461311c565b611fcf90856145da565b60008881526020902090915081015465ffffffffffff9081169087161015611ff957809150612007565b6120048160016147f8565b92505b505b600061201787878585613204565b905080156120525761203c8761202e6001846145da565b600091825260209091200190565b54600160301b90046001600160d01b031661136e565b6000979650505050505050565b6008546040805165ffffffffffff928316815291831660208301527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a16008805465ffffffffffff191665ffffffffffff92909216919091179055565b805160009060348110156120dd576001915050610be0565b828101601319015173ffffffffffffffffffffffffffffffffffffffff1981167f2370726f706f7365723d307800000000000000000000000000000000000000001461212e57600192505050610be0565b60008061213c6028856145da565b90505b838110156121c55760008061218b88848151811061215f5761215f614423565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016613266565b91509150816121a35760019650505050505050610be0565b8060ff166004856001600160a01b0316901b179350505080600101905061213f565b50856001600160a01b0316816001600160a01b031614935050505092915050565b60006121fb86868686805190602001206118e7565b90508451865114158061221057508351865114155b8061221a57508551155b15612268578551845186516040517f447b05d00000000000000000000000000000000000000000000000000000000081526004810193909352602483019190915260448201526064016110bb565b600081815260046020526040902054600160a01b900465ffffffffffff16156122b3578061229582611042565b6040516331b75e4d60e01b81526110bb929190600090600401614752565b60006122bd61102f565b6122c56116f3565b65ffffffffffff166122d791906147f8565b905060006122f260085463ffffffff600160301b9091041690565b6000848152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03871617815590915061233283611f73565b815465ffffffffffff91909116600160a01b027fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff909116178155612375826132f8565b815463ffffffff91909116600160d01b027fffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff90911617815588517f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e090859087908c908c9067ffffffffffffffff8111156123f1576123f1613993565b60405190808252806020026020018201604052801561242457816020015b606081526020019060019003908161240f5790505b508c896124318a826147f8565b8e6040516124479998979695949392919061480b565b60405180910390a150505095945050505050565b6060610b447f00000000000000000000000000000000000000000000000000000000000000006000613329565b6060610b447f00000000000000000000000000000000000000000000000000000000000000006001613329565b6000610b4443611f73565b60007f00000000000000000000000000000000000000000000000000000000000000006040517f3a46b1a80000000000000000000000000000000000000000000000000000000081526001600160a01b038681166004830152602482018690529190911690633a46b1a890604401602060405180830381865afa15801561254b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bd91906148e3565b8054600090801561259f576125898361202e6001846145da565b54600160301b90046001600160d01b0316611953565b60009392505050565b600b54604080516001600160a01b03928316815291831660208301527f08f74ea46ef7894f65eabfb5e6e695de773a000b47c529ab559178069b226401910160405180910390a1600b805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060826126335761262e826133d4565b610be0565b5080610be0565b8063ffffffff1660000361267d576040517ff1cfbf05000000000000000000000000000000000000000000000000000000008152600060048201526024016110bb565b6008546040805163ffffffff600160301b9093048316815291831660208301527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a16008805463ffffffff909216600160301b0269ffffffff00000000000019909216919091179055565b60075460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1600755565b6000606461273f83611379565b6040517f8e539e8c000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638e539e8c90602401602060405180830381865afa1580156127bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e191906148e3565b6127eb91906148fc565b610be09190614929565b80546000906fffffffffffffffffffffffffffffffff80821691600160801b900416810361284f576040517f75e52f4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6fffffffffffffffffffffffffffffffff8181166000908152600185810160205260408220805492905585547fffffffffffffffffffffffffffffffff00000000000000000000000000000000169301909116919091179092555090565b60006001600160d01b03821115611fa6576040516306dfcc6560e41b815260d06004820152602481018390526044016110bb565b6000806128ef858585613416565b915091505b935093915050565b600080600b60009054906101000a90046001600160a01b03166001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa158015612952573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297691906148e3565b905060003060601b6bffffffffffffffffffffffff19168418600b546040517fb1c5f4270000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063b1c5f427906129e2908a908a908a90600090889060040161494b565b602060405180830381865afa1580156129ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2391906148e3565b6000898152600c602052604080822092909255600b5491517f8f2a0bb00000000000000000000000000000000000000000000000000000000081526001600160a01b0390921691638f2a0bb091612a87918b918b918b919088908a90600401614999565b600060405180830381600087803b158015612aa157600080fd5b505af1158015612ab5573d6000803e3d6000fd5b505050506115438242612ac891906147f8565b611f73565b600b546001600160a01b031663e38335e53486868660003060601b6bffffffffffffffffffffffff191688186040518763ffffffff1660e01b8152600401612b1995949392919061494b565b6000604051808303818588803b158015612b3257600080fd5b505af1158015612b46573d6000803e3d6000fd5b50505060009687525050600c602052505060408320929092555050565b6000818152600460205260408120805460ff600160f01b8204811691600160f81b9004168115612b9857506007949350505050565b8015612ba957506002949350505050565b600085815260046020526040812054600160a01b900465ffffffffffff16905080600003612c06576040517f6ad06075000000000000000000000000000000000000000000000000000000008152600481018790526024016110bb565b6000612c106116f3565b65ffffffffffff169050808210612c2e575060009695505050505050565b6000612c3988611824565b9050818110612c5057506001979650505050505050565b612c59886135a9565b1580612c7957506000888152600960205260409020805460019091015411155b15612c8c57506003979650505050505050565b60008881526004602052604090206001015465ffffffffffff16600003612cbb57506004979650505050505050565b506005979650505050505050565b600080612cd8868686866135fb565b6000818152600c60205260409020549091508015610dc657600b546040517fc4d252f5000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b039091169063c4d252f590602401600060405180830381600087803b158015612d4f57600080fd5b505af1158015612d63573d6000803e3d6000fd5b5050506000838152600c602052604081205550509050949350505050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015612dda57507f000000000000000000000000000000000000000000000000000000000000000046145b15612e0457507f000000000000000000000000000000000000000000000000000000000000000090565b610b44604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60008060008351604103612ee65760208401516040850151606086015160001a612ed8888285856136c4565b955095509550505050612ef2565b50508151600091506002905b9250925092565b6000806000856001600160a01b03168585604051602401612f1b9291906149f1565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16630b135d3f60e11b17905251612f659190614a0a565b600060405180830381855afa9150503d8060008114612fa0576040519150601f19603f3d011682016040523d82523d6000602084013e612fa5565b606091505b5091509150818015612fb957506020815110155b80156110d057508051630b135d3f60e11b90612fde90830160209081019084016148e3565b149695505050505050565b60008581526009602090815260408083206001600160a01b0388168452600381019092529091205460ff1615613056576040517f71c6af490000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024016110bb565b6001600160a01b03851660009081526003820160205260409020805460ff1916600117905560ff84166130a2578281600001600082825461309791906147f8565b909155506131149050565b60001960ff8516016130c2578281600101600082825461309791906147f8565b60011960ff8516016130e2578281600201600082825461309791906147f8565b6040517f06b337c200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b60008160000361312e57506000919050565b6000600161313b84613793565b901c6001901b9050600181848161315457613154614913565b048201901c9050600181848161316c5761316c614913565b048201901c9050600181848161318457613184614913565b048201901c9050600181848161319c5761319c614913565b048201901c905060018184816131b4576131b4614913565b048201901c905060018184816131cc576131cc614913565b048201901c905060018184816131e4576131e4614913565b048201901c9050611953818285816131fe576131fe614913565b04613827565b60005b8183101561325e57600061321b848461383d565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff16111561324a57809250613258565b6132558160016147f8565b93505b50613207565b509392505050565b60008060f883901c602f811180156132815750603a8160ff16105b1561329657600194602f199091019350915050565b8060ff1660401080156132ac575060478160ff16105b156132c1576001946036199091019350915050565b8060ff1660601080156132d7575060678160ff16105b156132ec576001946056199091019350915050565b50600093849350915050565b600063ffffffff821115611fa6576040516306dfcc6560e41b815260206004820152602481018390526044016110bb565b606060ff83146133435761333c83613858565b9050610be0565b81805461334f906143e9565b80601f016020809104026020016040519081016040528092919081815260200182805461337b906143e9565b80156133c85780601f1061339d576101008083540402835291602001916133c8565b820191906000526020600020905b8154815290600101906020018083116133ab57829003601f168201915b50505050509050610be0565b8051156133e45780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82546000908190801561354e5760006134348761202e6001856145da565b60408051808201909152905465ffffffffffff808216808452600160301b9092046001600160d01b0316602084015291925090871610156134a1576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805165ffffffffffff8088169116036134ed57846134c48861202e6001866145da565b80546001600160d01b0392909216600160301b0265ffffffffffff90921691909117905561353e565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216600160301b029216919091179101555b6020015192508391506128f49050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a815291822095519251909316600160301b0291909316179201919091559050816128f4565b6000818152600960205260408120600281015460018201546135cb91906147f8565b6000848152600460205260409020546135f290600160a01b900465ffffffffffff166119c8565b11159392505050565b60008061360a868686866118e7565b90506136588161361a6007611b15565b6136246006611b15565b61362e6002611b15565b600161363b600782614a26565b613646906002614b23565b61365091906145da565b181818611b38565b506000818152600460205260409081902080547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b179055517f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90610f4f9083815260200190565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156136ff5750600091506003905082613789565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613753573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661377f57506000925060019150829050613789565b9250600091508190505b9450945094915050565b600080608083901c156137a857608092831c92015b604083901c156137ba57604092831c92015b602083901c156137cc57602092831c92015b601083901c156137de57601092831c92015b600883901c156137f057600892831c92015b600483901c1561380257600492831c92015b600283901c1561381457600292831c92015b600183901c15610be05760010192915050565b60008183106138365781611953565b5090919050565b600061384c6002848418614929565b611953908484166147f8565b6060600061386583613897565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600060ff8216601f811115610be0576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000602082840312156138ea57600080fd5b81356001600160e01b03198116811461195357600080fd5b60006020828403121561391457600080fd5b5035919050565b60005b8381101561393657818101518382015260200161391e565b50506000910152565b6000815180845261395781602086016020860161391b565b601f01601f19169290920160200192915050565b602081526000611953602083018461393f565b6001600160a01b0381168114610bf757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156139d2576139d2613993565b604052919050565b600067ffffffffffffffff8211156139f4576139f4613993565b50601f01601f191660200190565b600082601f830112613a1357600080fd5b8135613a26613a21826139da565b6139a9565b818152846020838601011115613a3b57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613a6e57600080fd5b8435613a798161397e565b93506020850135613a898161397e565b925060408501359150606085013567ffffffffffffffff811115613aac57600080fd5b613ab887828801613a02565b91505092959194509250565b600067ffffffffffffffff821115613ade57613ade613993565b5060051b60200190565b600082601f830112613af957600080fd5b81356020613b09613a2183613ac4565b8083825260208201915060208460051b870101935086841115613b2b57600080fd5b602086015b84811015611024578035613b438161397e565b8352918301918301613b30565b600082601f830112613b6157600080fd5b81356020613b71613a2183613ac4565b8083825260208201915060208460051b870101935086841115613b9357600080fd5b602086015b848110156110245780358352918301918301613b98565b600082601f830112613bc057600080fd5b81356020613bd0613a2183613ac4565b82815260059290921b84018101918181019086841115613bef57600080fd5b8286015b8481101561102457803567ffffffffffffffff811115613c135760008081fd5b613c218986838b0101613a02565b845250918301918301613bf3565b60008060008060808587031215613c4557600080fd5b843567ffffffffffffffff80821115613c5d57600080fd5b613c6988838901613ae8565b95506020870135915080821115613c7f57600080fd5b613c8b88838901613b50565b94506040870135915080821115613ca157600080fd5b50613cae87828801613baf565b949793965093946060013593505050565b600080600080600060a08688031215613cd757600080fd5b853567ffffffffffffffff80821115613cef57600080fd5b613cfb89838a01613ae8565b96506020880135915080821115613d1157600080fd5b613d1d89838a01613b50565b95506040880135915080821115613d3357600080fd5b613d3f89838a01613baf565b94506060880135915080821115613d5557600080fd5b613d6189838a01613a02565b93506080880135915080821115613d7757600080fd5b50613d8488828901613a02565b9150509295509295909350565b634e487b7160e01b600052602160045260246000fd5b60088110613dc557634e487b7160e01b600052602160045260246000fd5b9052565b60208101610be08284613da7565b60008060408385031215613dea57600080fd5b823591506020830135613dfc8161397e565b809150509250929050565b803560ff8116811461119757600080fd5b60008060408385031215613e2b57600080fd5b82359150613e3b60208401613e07565b90509250929050565b60008083601f840112613e5657600080fd5b50813567ffffffffffffffff811115613e6e57600080fd5b602083019150836020828501011115613e8657600080fd5b9250929050565b600080600080600080600060c0888a031215613ea857600080fd5b87359650613eb860208901613e07565b95506040880135613ec88161397e565b9450606088013567ffffffffffffffff80821115613ee557600080fd5b613ef18b838c01613e44565b909650945060808a0135915080821115613f0a57600080fd5b613f168b838c01613a02565b935060a08a0135915080821115613f2c57600080fd5b50613f398a828b01613a02565b91505092959891949750929550565b600080600080600060808688031215613f6057600080fd5b85359450613f7060208701613e07565b9350604086013567ffffffffffffffff80821115613f8d57600080fd5b613f9989838a01613e44565b90955093506060880135915080821115613d7757600080fd5b65ffffffffffff81168114610bf757600080fd5b600060208284031215613fd857600080fd5b813561195381613fb2565b60008060008060608587031215613ff957600080fd5b8435935061400960208601613e07565b9250604085013567ffffffffffffffff81111561402557600080fd5b61403187828801613e44565b95989497509550505050565b6000806000806080858703121561405357600080fd5b843567ffffffffffffffff8082111561406b57600080fd5b61407788838901613ae8565b9550602087013591508082111561408d57600080fd5b61409988838901613b50565b945060408701359150808211156140af57600080fd5b6140bb88838901613baf565b935060608701359150808211156140d157600080fd5b50613ab887828801613a02565b6000602082840312156140f057600080fd5b81356119538161397e565b60008151808452602080850194506020840160005b8381101561412c57815187529582019590820190600101614110565b509495945050505050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e06020820152600061417260e083018961393f565b8281036040840152614184818961393f565b90508660608401526001600160a01b03861660808401528460a084015282810360c08401526141b381856140fb565b9a9950505050505050505050565b600080600080608085870312156141d757600080fd5b843593506141e760208601613e07565b925060408501356141f78161397e565b9150606085013567ffffffffffffffff811115613aac57600080fd5b60008060006060848603121561422857600080fd5b83356142338161397e565b925060208401359150604084013567ffffffffffffffff81111561425657600080fd5b61426286828701613a02565b9150509250925092565b600080600080600060a0868803121561428457600080fd5b853561428f8161397e565b9450602086013561429f8161397e565b9350604086013567ffffffffffffffff808211156142bc57600080fd5b6142c889838a01613b50565b945060608801359150808211156142de57600080fd5b613d6189838a01613b50565b6000806000806060858703121561430057600080fd5b843561430b8161397e565b935060208501359250604085013567ffffffffffffffff81111561402557600080fd5b60006020828403121561434057600080fd5b813563ffffffff8116811461195357600080fd5b6000806040838503121561436757600080fd5b82356143728161397e565b946020939093013593505050565b600080600080600060a0868803121561439857600080fd5b85356143a38161397e565b945060208601356143b38161397e565b93506040860135925060608601359150608086013567ffffffffffffffff8111156143dd57600080fd5b613d8488828901613a02565b600181811c908216806143fd57607f821691505b60208210810361441d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b601f821115614481576000816000526020600020601f850160051c810160208610156144625750805b601f850160051c820191505b818110156131145782815560010161446e565b505050565b815167ffffffffffffffff8111156144a0576144a0613993565b6144b4816144ae84546143e9565b84614439565b602080601f8311600181146144e957600084156144d15750858301515b600019600386901b1c1916600185901b178555613114565b600085815260208120601f198616915b82811015614518578886015182559484019460019091019084016144f9565b50858210156145365787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561455857600080fd5b815167ffffffffffffffff81111561456f57600080fd5b8201601f8101841361458057600080fd5b805161458e613a21826139da565b8181528560208385010111156145a357600080fd5b611db582602083016020860161391b565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610be057610be06145c4565b65ffffffffffff82811682821603908082111561460c5761460c6145c4565b5092915050565b604081526000614626604083018561393f565b905082151560208301529392505050565b60006020828403121561464957600080fd5b815161195381613fb2565b65ffffffffffff81811683821601908082111561460c5761460c6145c4565b60008151808452602080850194506020840160005b8381101561412c5781516001600160a01b031687529582019590820190600101614688565b60008282518085526020808601955060208260051b8401016020860160005b848110156146fa57601f198684030189526146e883835161393f565b988401989250908301906001016146cc565b5090979650505050505050565b60808152600061471a6080830187614673565b828103602084015261472c81876140fb565b9050828103604084015261474081866146ad565b91505082606083015295945050505050565b838152606081016147666020830185613da7565b826040830152949350505050565b60006020828403121561478657600080fd5b8151801515811461195357600080fd5b84815260ff841660208201528260408201526080606082015260006110d0608083018461393f565b85815260ff8516602082015283604082015260a0606082015260006147e660a083018561393f565b8281036080840152611543818561393f565b80820180821115610be057610be06145c4565b60006101208b835260206001600160a01b038c16818501528160408501526148358285018c614673565b91508382036060850152614849828b6140fb565b915083820360808501528189518084528284019150828160051b850101838c0160005b8381101561489a57601f1987840301855261488883835161393f565b9486019492509085019060010161486c565b505086810360a08801526148ae818c6146ad565b9450505050508560c08401528460e08401528281036101008401526148d3818561393f565b9c9b505050505050505050505050565b6000602082840312156148f557600080fd5b5051919050565b8082028115828204841417610be057610be06145c4565b634e487b7160e01b600052601260045260246000fd5b60008261494657634e487b7160e01b600052601260045260246000fd5b500490565b60a08152600061495e60a0830188614673565b828103602084015261497081886140fb565b9050828103604084015261498481876146ad565b60608401959095525050608001529392505050565b60c0815260006149ac60c0830189614673565b82810360208401526149be81896140fb565b905082810360408401526149d281886146ad565b60608401969096525050608081019290925260a0909101529392505050565b8281526040602082015260006111bd604083018461393f565b60008251614a1c81846020870161391b565b9190910192915050565b60ff8181168382160190811115610be057610be06145c4565b600181815b80851115614a7a578160001904821115614a6057614a606145c4565b80851615614a6d57918102915b93841c9390800290614a44565b509250929050565b600082614a9157506001610be0565b81614a9e57506000610be0565b8160018114614ab45760028114614abe57614ada565b6001915050610be0565b60ff841115614acf57614acf6145c4565b50506001821b610be0565b5060208310610133831016604e8410600b8410161715614afd575081810a610be0565b614b078383614a3f565b8060001904821115614b1b57614b1b6145c4565b029392505050565b600061195360ff841683614a8256fea26469706673582212207ed81f40f23ccefb9d88a1667a0d81bd73e08816338310a81175f7bf01229f4964736f6c63430008180033608060405260405161062f38038061062f83398101604081905261002291610047565b600080546001600160a01b0319166001600160a01b0392909216919091179055610077565b60006020828403121561005957600080fd5b81516001600160a01b038116811461007057600080fd5b9392505050565b6105a9806100866000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063d6e982e511610050578063d6e982e514610127578063e6fd5c9c1461013c578063fa2a89971461014f57600080fd5b8063150b7a02146100775780638da5cb5b146100e5578063968ed60014610110575b600080fd5b6100af610085366004610430565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6000546100f8906001600160a01b031681565b6040516001600160a01b0390911681526020016100dc565b61011960015481565b6040519081526020016100dc565b61013a6101353660046104cb565b61016c565b005b61013a61014a3660046104f5565b610209565b60025461015c9060ff1681565b60405190151581526020016100dc565b804710156101c15760405162461bcd60e51b815260206004820152601260248201527f496e73756666696369656e742066756e6473000000000000000000000000000060448201526064015b60405180910390fd5b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156101f7573d6000803e3d6000fd5b50506002805460ff1916600117905550565b6000546001600160a01b031633146102635760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016101b8565b6040517f70a08231000000000000000000000000000000000000000000000000000000008152306004820152819083906001600160a01b038316906370a0823190602401602060405180830381865afa1580156102c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e89190610531565b10156103365760405162461bcd60e51b815260206004820152601260248201527f696e73756666696369656e742066756e6473000000000000000000000000000060448201526064016101b8565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301526024820185905282169063a9059cbb906044016020604051808303816000875af115801561039e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103c2919061054a565b61040e5760405162461bcd60e51b815260206004820152600f60248201527f5472616e73666572206661696c6564000000000000000000000000000000000060448201526064016101b8565b50505050565b80356001600160a01b038116811461042b57600080fd5b919050565b60008060008060006080868803121561044857600080fd5b61045186610414565b945061045f60208701610414565b935060408601359250606086013567ffffffffffffffff8082111561048357600080fd5b818801915088601f83011261049757600080fd5b8135818111156104a657600080fd5b8960208285010111156104b857600080fd5b9699959850939650602001949392505050565b600080604083850312156104de57600080fd5b6104e783610414565b946020939093013593505050565b60008060006060848603121561050a57600080fd5b61051384610414565b92506020840135915061052860408501610414565b90509250925092565b60006020828403121561054357600080fd5b5051919050565b60006020828403121561055c57600080fd5b8151801515811461056c57600080fd5b939250505056fea2646970667358221220ae6d9e982920baf58762449aa1ddc666c2bba94df14ead4a276ad2fdbd98132c64736f6c63430008180033000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000078000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000008546f6b656e44414f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000354444f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008537570657244414f000000000000000000000000000000000000000000000000