0x60806040526004361061026b5760003560e01c80635d098b3811610144578063a6334231116100b6578063d12a76881161007a578063d12a76881461092b578063dd46706414610956578063dd62ed3e1461097f578063e8c4c43c146109bc578063ea2f0b37146109d3578063f2fde38b146109fc57610272565b8063a63342311461086c578063a69df4b514610883578063a9059cbb1461089a578063b6c52324146108d7578063c49b9a801461090257610272565b8063764d72bf11610108578063764d72bf146107485780637d1db4a51461077157806388f820201461079c5780638da5cb5b146107d957806395d89b4114610804578063a457c2d71461082f57610272565b80635d098b38146106755780636bc87c3a1461069e57806370a08231146106c9578063715018a61461070657806375f0a8741461071d57610272565b806339509351116101dd5780634549b039116101a15780634549b0391461056557806348c54b9d146105a257806349bd5a5e146105b95780634a74bb02146105e457806352390c021461060f5780635342acb41461063857610272565b806339509351146104825780633ae7dc20146104bf5780633b124fe7146104e85780633bd5d17314610513578063437823ec1461053c57610272565b806323b872dd1161022f57806323b872dd1461036057806329e04b4a1461039d5780632d838119146103c65780632f05205c14610403578063313ce5671461042e5780633685d4191461045957610272565b806306fdde0314610277578063095ea7b3146102a257806313114a9d146102df5780631694505e1461030a57806318160ddd1461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a25565b60405161029991906149fd565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190614ab8565b610ab7565b6040516102d69190614b13565b60405180910390f35b3480156102eb57600080fd5b506102f4610ad5565b6040516103019190614b3d565b60405180910390f35b34801561031657600080fd5b5061031f610adf565b60405161032c9190614bb7565b60405180910390f35b34801561034157600080fd5b5061034a610b03565b6040516103579190614b3d565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190614bd2565b610b0d565b6040516103949190614b13565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190614c25565b610be6565b005b3480156103d257600080fd5b506103ed60048036038101906103e89190614c25565b610cda565b6040516103fa9190614b3d565b60405180910390f35b34801561040f57600080fd5b50610418610d48565b6040516104259190614b13565b60405180910390f35b34801561043a57600080fd5b50610443610d5b565b6040516104509190614c6e565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190614c89565b610d72565b005b34801561048e57600080fd5b506104a960048036038101906104a49190614ab8565b6110c1565b6040516104b69190614b13565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190614cf4565b611174565b005b3480156104f457600080fd5b506104fd611323565b60405161050a9190614b3d565b60405180910390f35b34801561051f57600080fd5b5061053a60048036038101906105359190614c25565b611329565b005b34801561054857600080fd5b50610563600480360381019061055e9190614c89565b6114a4565b005b34801561057157600080fd5b5061058c60048036038101906105879190614d60565b611594565b6040516105999190614b3d565b60405180910390f35b3480156105ae57600080fd5b506105b7611618565b005b3480156105c557600080fd5b506105ce611718565b6040516105db9190614daf565b60405180910390f35b3480156105f057600080fd5b506105f961173c565b6040516106069190614b13565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190614c89565b61174f565b005b34801561064457600080fd5b5061065f600480360381019061065a9190614c89565b611a03565b60405161066c9190614b13565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190614c89565b611a59565b005b3480156106aa57600080fd5b506106b3611b32565b6040516106c09190614b3d565b60405180910390f35b3480156106d557600080fd5b506106f060048036038101906106eb9190614c89565b611b38565b6040516106fd9190614b3d565b60405180910390f35b34801561071257600080fd5b5061071b611c23565b005b34801561072957600080fd5b50610732611d76565b60405161073f9190614daf565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a9190614e08565b611d9c565b005b34801561077d57600080fd5b50610786611e7b565b6040516107939190614b3d565b60405180910390f35b3480156107a857600080fd5b506107c360048036038101906107be9190614c89565b611e81565b6040516107d09190614b13565b60405180910390f35b3480156107e557600080fd5b506107ee611ed7565b6040516107fb9190614daf565b60405180910390f35b34801561081057600080fd5b50610819611f00565b60405161082691906149fd565b60405180910390f35b34801561083b57600080fd5b5061085660048036038101906108519190614ab8565b611f92565b6040516108639190614b13565b60405180910390f35b34801561087857600080fd5b5061088161205f565b005b34801561088f57600080fd5b50610898612111565b005b3480156108a657600080fd5b506108c160048036038101906108bc9190614ab8565b6122e5565b6040516108ce9190614b13565b60405180910390f35b3480156108e357600080fd5b506108ec612303565b6040516108f99190614b3d565b60405180910390f35b34801561090e57600080fd5b5061092960048036038101906109249190614e35565b61230d565b005b34801561093757600080fd5b506109406123f6565b60405161094d9190614b3d565b60405180910390f35b34801561096257600080fd5b5061097d60048036038101906109789190614c25565b6123fc565b005b34801561098b57600080fd5b506109a660048036038101906109a19190614e62565b6125c3565b6040516109b39190614b3d565b60405180910390f35b3480156109c857600080fd5b506109d161264a565b005b3480156109df57600080fd5b506109fa60048036038101906109f59190614c89565b6126ef565b005b348015610a0857600080fd5b50610a236004803603810190610a1e9190614c89565b6127df565b005b6060600e8054610a3490614ed1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6090614ed1565b8015610aad5780601f10610a8257610100808354040283529160200191610aad565b820191906000526020600020905b815481529060010190602001808311610a9057829003601f168201915b5050505050905090565b6000610acb610ac46129a1565b84846129a9565b6001905092915050565b6000600c54905090565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600a54905090565b6000610b1a848484612b74565b610bdb84610b266129a1565b610bd685604051806060016040528060288152602001615d6e60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b8c6129a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee19092919063ffffffff16565b6129a9565b600190509392505050565b610bee6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290614f4f565b60405180910390fd5b6301312d008111610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb890614fe1565b60405180910390fd5b633b9aca0081610cd19190615030565b60178190555050565b6000600b54821115610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d18906150fc565b60405180910390fd5b6000610d2b612f45565b9050610d408184612f7090919063ffffffff16565b915050919050565b600960009054906101000a900460ff1681565b6000601060009054906101000a900460ff16905090565b610d7a6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90614f4f565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a90615168565b60405180910390fd5b60005b6008805490508110156110bd578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610ece57610ecd615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110aa5760086001600880549050610f2991906151b7565b81548110610f3a57610f39615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610f7957610f78615188565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060088054806110705761106f6151eb565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556110bd565b80806110b59061521a565b915050610e96565b5050565b600061116a6110ce6129a1565b8461116585600560006110df6129a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b6129a9565b6001905092915050565b61117c6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120090614f4f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb828473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161125f9190614daf565b60206040518083038186803b15801561127757600080fd5b505afa15801561128b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112af9190615278565b6040518363ffffffff1660e01b81526004016112cc9291906152a5565b602060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131e91906152e3565b505050565b60115481565b60006113336129a1565b9050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990615382565b60405180910390fd5b60006113cd83613018565b5050505050905061142681600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061147e81600b5461307490919063ffffffff16565b600b8190555061149983600c54612fba90919063ffffffff16565b600c81905550505050565b6114ac6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090614f4f565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a548311156115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d2906153ee565b60405180910390fd5b816115fb5760006115eb84613018565b5050505050905080915050611612565b600061160684613018565b50505050915050809150505b92915050565b6116206129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490614f4f565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611715573d6000803e3d6000fd5b50565b7f000000000000000000000000ed572939b271e007321a7f17121bc2bd7e79e0ee81565b601560019054906101000a900460ff1681565b6117576129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117db90614f4f565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890615168565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561194557611901600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cda565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611a616129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae590614f4f565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611bd357600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611c1e565b611c1b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cda565b90505b919050565b611c2b6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90614f4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611da46129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2890614f4f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611e77573d6000803e3d6000fd5b5050565b60165481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600f8054611f0f90614ed1565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3b90614ed1565b8015611f885780601f10611f5d57610100808354040283529160200191611f88565b820191906000526020600020905b815481529060010190602001808311611f6b57829003601f168201915b5050505050905090565b6000612055611f9f6129a1565b8461205085604051806060016040528060258152602001615d966025913960056000611fc96129a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee19092919063ffffffff16565b6129a9565b6001905092915050565b6120676129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120eb90614f4f565b60405180910390fd5b6001600960006101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219890615480565b60405180910390fd5b60025442116121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc906154ec565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006122f96122f26129a1565b8484612b74565b6001905092915050565b6000600254905090565b6123156129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239990614f4f565b60405180910390fd5b80601560016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516123eb9190614b13565b60405180910390a150565b60175481565b6124046129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248890614f4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261253f919061550c565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6126526129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d690614f4f565b60405180910390fd5b66470de4df820000601681905550565b6126f76129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277b90614f4f565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6127e76129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b90614f4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128db906155d4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1090615666565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a80906156f8565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b679190614b3d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdb9061578a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b9061581c565b60405180910390fd5b60008111612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e906158ae565b60405180910390fd5b612c9f611ed7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612d0d5750612cdd611ed7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612d5857601654811115612d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4e90615940565b60405180910390fd5b5b6000612d6330611b38565b90506016548110612d745760165490505b60006017548210159050808015612d985750601560009054906101000a900460ff16155b8015612df057507f000000000000000000000000ed572939b271e007321a7f17121bc2bd7e79e0ee73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612e085750601560019054906101000a900460ff165b15612e1c576017549150612e1b826130be565b5b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ec35750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ecd57600090505b612ed986868684613237565b505050505050565b6000838311158290612f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f2091906149fd565b60405180910390fd5b5060008385612f3891906151b7565b9050809150509392505050565b6000806000612f5261359c565b91509150612f698183612f7090919063ffffffff16565b9250505090565b6000612fb283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061384f565b905092915050565b6000808284612fc9919061550c565b90508381101561300e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613005906159ac565b60405180910390fd5b8091505092915050565b600080600080600080600080600061302f8a6138b2565b925092509250600080600061304d8d8686613048612f45565b61390c565b9250925092508282828888889b509b509b509b509b509b5050505050505091939550919395565b60006130b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ee1565b905092915050565b6001601560006101000a81548160ff02191690831515021790555060006130ef600283612f7090919063ffffffff16565b90506000613106828461307490919063ffffffff16565b9050600047905061311683613995565b600061312b824761307490919063ffffffff16565b905060006131566064613148602385613be190919063ffffffff16565b612f7090919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156131c0573d6000803e3d6000fd5b5080826131cd91906151b7565b91506131d98483613c5c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185838660405161320c939291906159cc565b60405180910390a150505050506000601560006101000a81548160ff02191690831515021790555050565b600960009054906101000a900460ff1661328b57613253611ed7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461328a57600080fd5b5b8061329957613298613d4c565b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561333c5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156133515761334c848484613d8f565b613588565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133f45750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561340957613404848484613fef565b613587565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134ad5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134c2576134bd84848461424f565b613586565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156135645750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156135795761357484848461441a565b613585565b61358484848461424f565b5b5b5b5b806135965761359561470f565b5b50505050565b6000806000600b5490506000600a54905060005b600880549050811015613812578260036000600884815481106135d6576135d5615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806136c4575081600460006008848154811061365c5761365b615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156136db57600b54600a549450945050505061384b565b61376b60036000600884815481106136f6576136f5615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461307490919063ffffffff16565b92506137fd600460006008848154811061378857613787615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361307490919063ffffffff16565b9150808061380a9061521a565b9150506135b0565b5061382a600a54600b54612f7090919063ffffffff16565b82101561384257600b54600a5493509350505061384b565b81819350935050505b9091565b60008083118290613896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388d91906149fd565b60405180910390fd5b50600083856138a59190615a32565b9050809150509392505050565b6000806000806138c185614723565b905060006138ce86614754565b905060006138f7826138e9858a61307490919063ffffffff16565b61307490919063ffffffff16565b90508083839550955095505050509193909250565b6000806000806139258589613be190919063ffffffff16565b9050600061393c8689613be190919063ffffffff16565b905060006139538789613be190919063ffffffff16565b9050600061397c8261396e858761307490919063ffffffff16565b61307490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000600267ffffffffffffffff8111156139b2576139b1615a63565b5b6040519080825280602002602001820160405280156139e05781602001602082028036833780820191505090505b50905030816000815181106139f8576139f7615188565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613a9857600080fd5b505afa158015613aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ad09190615aa7565b81600181518110613ae457613ae3615188565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613b49307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846129a9565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613bab959493929190615bcd565b600060405180830381600087803b158015613bc557600080fd5b505af1158015613bd9573d6000803e3d6000fd5b505050505050565b600080831415613bf45760009050613c56565b60008284613c029190615030565b9050828482613c119190615a32565b14613c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4890615c99565b60405180910390fd5b809150505b92915050565b613c87307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846129a9565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613cd1611ed7565b426040518863ffffffff1660e01b8152600401613cf396959493929190615cb9565b6060604051808303818588803b158015613d0c57600080fd5b505af1158015613d20573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613d459190615d1a565b5050505050565b6000601154148015613d6057506000601354145b15613d6a57613d8d565b601154601281905550601354601481905550600060118190555060006013819055505b565b600080600080600080613da187613018565b955095509550955095509550613dff87600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e9486600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f2985600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f7581614785565b613f7f848361492a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613fdc9190614b3d565b60405180910390a3505050505050505050565b60008060008060008061400187613018565b95509550955095509550955061405f86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140f483600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061418985600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506141d581614785565b6141df848361492a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161423c9190614b3d565b60405180910390a3505050505050505050565b60008060008060008061426187613018565b9550955095509550955095506142bf86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061435485600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143a081614785565b6143aa848361492a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516144079190614b3d565b60405180910390a3505050505050505050565b60008060008060008061442c87613018565b95509550955095509550955061448a87600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061451f86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145b483600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061464985600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061469581614785565b61469f848361492a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516146fc9190614b3d565b60405180910390a3505050505050505050565b601254601181905550601454601381905550565b600061474d606461473f60115485613be190919063ffffffff16565b612f7090919063ffffffff16565b9050919050565b600061477e606461477060135485613be190919063ffffffff16565b612f7090919063ffffffff16565b9050919050565b600061478f612f45565b905060006147a68284613be190919063ffffffff16565b90506147fa81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614925576148e183600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b61493f82600b5461307490919063ffffffff16565b600b8190555061495a81600c54612fba90919063ffffffff16565b600c819055505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561499e578082015181840152602081019050614983565b838111156149ad576000848401525b50505050565b6000601f19601f8301169050919050565b60006149cf82614964565b6149d9818561496f565b93506149e9818560208601614980565b6149f2816149b3565b840191505092915050565b60006020820190508181036000830152614a1781846149c4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614a4f82614a24565b9050919050565b614a5f81614a44565b8114614a6a57600080fd5b50565b600081359050614a7c81614a56565b92915050565b6000819050919050565b614a9581614a82565b8114614aa057600080fd5b50565b600081359050614ab281614a8c565b92915050565b60008060408385031215614acf57614ace614a1f565b5b6000614add85828601614a6d565b9250506020614aee85828601614aa3565b9150509250929050565b60008115159050919050565b614b0d81614af8565b82525050565b6000602082019050614b286000830184614b04565b92915050565b614b3781614a82565b82525050565b6000602082019050614b526000830184614b2e565b92915050565b6000819050919050565b6000614b7d614b78614b7384614a24565b614b58565b614a24565b9050919050565b6000614b8f82614b62565b9050919050565b6000614ba182614b84565b9050919050565b614bb181614b96565b82525050565b6000602082019050614bcc6000830184614ba8565b92915050565b600080600060608486031215614beb57614bea614a1f565b5b6000614bf986828701614a6d565b9350506020614c0a86828701614a6d565b9250506040614c1b86828701614aa3565b9150509250925092565b600060208284031215614c3b57614c3a614a1f565b5b6000614c4984828501614aa3565b91505092915050565b600060ff82169050919050565b614c6881614c52565b82525050565b6000602082019050614c836000830184614c5f565b92915050565b600060208284031215614c9f57614c9e614a1f565b5b6000614cad84828501614a6d565b91505092915050565b6000614cc182614a44565b9050919050565b614cd181614cb6565b8114614cdc57600080fd5b50565b600081359050614cee81614cc8565b92915050565b60008060408385031215614d0b57614d0a614a1f565b5b6000614d1985828601614cdf565b9250506020614d2a85828601614a6d565b9150509250929050565b614d3d81614af8565b8114614d4857600080fd5b50565b600081359050614d5a81614d34565b92915050565b60008060408385031215614d7757614d76614a1f565b5b6000614d8585828601614aa3565b9250506020614d9685828601614d4b565b9150509250929050565b614da981614a44565b82525050565b6000602082019050614dc46000830184614da0565b92915050565b6000614dd582614a24565b9050919050565b614de581614dca565b8114614df057600080fd5b50565b600081359050614e0281614ddc565b92915050565b600060208284031215614e1e57614e1d614a1f565b5b6000614e2c84828501614df3565b91505092915050565b600060208284031215614e4b57614e4a614a1f565b5b6000614e5984828501614d4b565b91505092915050565b60008060408385031215614e7957614e78614a1f565b5b6000614e8785828601614a6d565b9250506020614e9885828601614a6d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614ee957607f821691505b60208210811415614efd57614efc614ea2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614f3960208361496f565b9150614f4482614f03565b602082019050919050565b60006020820190508181036000830152614f6881614f2c565b9050919050565b7f53776170205468726573686f6c6420416d6f756e742063616e6e6f742062652060008201527f6c657373207468616e203639204d696c6c696f6e000000000000000000000000602082015250565b6000614fcb60348361496f565b9150614fd682614f6f565b604082019050919050565b60006020820190508181036000830152614ffa81614fbe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061503b82614a82565b915061504683614a82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561507f5761507e615001565b5b828202905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006150e6602a8361496f565b91506150f18261508a565b604082019050919050565b60006020820190508181036000830152615115816150d9565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000615152601b8361496f565b915061515d8261511c565b602082019050919050565b6000602082019050818103600083015261518181615145565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006151c282614a82565b91506151cd83614a82565b9250828210156151e0576151df615001565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061522582614a82565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561525857615257615001565b5b600182019050919050565b60008151905061527281614a8c565b92915050565b60006020828403121561528e5761528d614a1f565b5b600061529c84828501615263565b91505092915050565b60006040820190506152ba6000830185614da0565b6152c76020830184614b2e565b9392505050565b6000815190506152dd81614d34565b92915050565b6000602082840312156152f9576152f8614a1f565b5b6000615307848285016152ce565b91505092915050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b600061536c602c8361496f565b915061537782615310565b604082019050919050565b6000602082019050818103600083015261539b8161535f565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006153d8601f8361496f565b91506153e3826153a2565b602082019050919050565b60006020820190508181036000830152615407816153cb565b9050919050565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b600061546a60238361496f565b91506154758261540e565b604082019050919050565b600060208201905081810360008301526154998161545d565b9050919050565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b60006154d6601f8361496f565b91506154e1826154a0565b602082019050919050565b60006020820190508181036000830152615505816154c9565b9050919050565b600061551782614a82565b915061552283614a82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561555757615556615001565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006155be60268361496f565b91506155c982615562565b604082019050919050565b600060208201905081810360008301526155ed816155b1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061565060248361496f565b915061565b826155f4565b604082019050919050565b6000602082019050818103600083015261567f81615643565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006156e260228361496f565b91506156ed82615686565b604082019050919050565b60006020820190508181036000830152615711816156d5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061577460258361496f565b915061577f82615718565b604082019050919050565b600060208201905081810360008301526157a381615767565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061580660238361496f565b9150615811826157aa565b604082019050919050565b60006020820190508181036000830152615835816157f9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061589860298361496f565b91506158a38261583c565b604082019050919050565b600060208201905081810360008301526158c78161588b565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061592a60288361496f565b9150615935826158ce565b604082019050919050565b600060208201905081810360008301526159598161591d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615996601b8361496f565b91506159a182615960565b602082019050919050565b600060208201905081810360008301526159c581615989565b9050919050565b60006060820190506159e16000830186614b2e565b6159ee6020830185614b2e565b6159fb6040830184614b2e565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000615a3d82614a82565b9150615a4883614a82565b925082615a5857615a57615a03565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050615aa181614a56565b92915050565b600060208284031215615abd57615abc614a1f565b5b6000615acb84828501615a92565b91505092915050565b6000819050919050565b6000615af9615af4615aef84615ad4565b614b58565b614a82565b9050919050565b615b0981615ade565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615b4481614a44565b82525050565b6000615b568383615b3b565b60208301905092915050565b6000602082019050919050565b6000615b7a82615b0f565b615b848185615b1a565b9350615b8f83615b2b565b8060005b83811015615bc0578151615ba78882615b4a565b9750615bb283615b62565b925050600181019050615b93565b5085935050505092915050565b600060a082019050615be26000830188614b2e565b615bef6020830187615b00565b8181036040830152615c018186615b6f565b9050615c106060830185614da0565b615c1d6080830184614b2e565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000615c8360218361496f565b9150615c8e82615c27565b604082019050919050565b60006020820190508181036000830152615cb281615c76565b9050919050565b600060c082019050615cce6000830189614da0565b615cdb6020830188614b2e565b615ce86040830187615b00565b615cf56060830186615b00565b615d026080830185614da0565b615d0f60a0830184614b2e565b979650505050505050565b600080600060608486031215615d3357615d32614a1f565b5b6000615d4186828701615263565b9350506020615d5286828701615263565b9250506040615d6386828701615263565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206578cd9cd97bdaa4ccc28284a93d6a6e8574b933582a75a7fa4b079406e1cfbd64736f6c63430008090033
0x60c06040526000600960006101000a81548160ff021916908315150217905550670de0b6b3a7640000600a55600a546000196200003d9190620006cf565b6000196200004c919062000736565b600b556040518060400160405280600981526020017f5368696261726f6e690000000000000000000000000000000000000000000000815250600e90805190602001906200009c929190620005e6565b506040518060400160405280600481526020017f524f4e4900000000000000000000000000000000000000000000000000000000815250600f9080519060200190620000ea929190620005e6565b506009601060006101000a81548160ff021916908360ff1602179055506002601155601154601255600a6013556013546014556001601560016101000a81548160ff02191690831515021790555066470de4df82000060165566470de4df8200006017553480156200015b57600080fd5b5060006200016e620005b560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600b546003600062000223620005b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002c157600080fd5b505afa158015620002d6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002fc9190620007db565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035f57600080fd5b505afa15801562000374573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039a9190620007db565b6040518363ffffffff1660e01b8152600401620003b99291906200081e565b602060405180830381600087803b158015620003d457600080fd5b505af1158015620003e9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040f9190620007db565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506001600660006200048c620005bd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000545620005b560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620005a691906200085c565b60405180910390a350620008de565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620005f490620008a8565b90600052602060002090601f01602090048101928262000618576000855562000664565b82601f106200063357805160ff191683800117855562000664565b8280016001018555821562000664579182015b828111156200066357825182559160200191906001019062000646565b5b50905062000673919062000677565b5090565b5b808211156200069257600081600090555060010162000678565b5090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620006dc8262000696565b9150620006e98362000696565b925082620006fc57620006fb620006a0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007438262000696565b9150620007508362000696565b92508282101562000766576200076562000707565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007a38262000776565b9050919050565b620007b58162000796565b8114620007c157600080fd5b50565b600081519050620007d581620007aa565b92915050565b600060208284031215620007f457620007f362000771565b5b60006200080484828501620007c4565b91505092915050565b620008188162000796565b82525050565b60006040820190506200083560008301856200080d565b6200084460208301846200080d565b9392505050565b620008568162000696565b82525050565b60006020820190506200087360008301846200084b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008c157607f821691505b60208210811415620008d857620008d762000879565b5b50919050565b60805160a051615df06200092e6000396000818161171a0152612da1015260008181610ae101528181613a3401528181613b2401528181613b4b01528181613c620152613c890152615df06000f3fe60806040526004361061026b5760003560e01c80635d098b3811610144578063a6334231116100b6578063d12a76881161007a578063d12a76881461092b578063dd46706414610956578063dd62ed3e1461097f578063e8c4c43c146109bc578063ea2f0b37146109d3578063f2fde38b146109fc57610272565b8063a63342311461086c578063a69df4b514610883578063a9059cbb1461089a578063b6c52324146108d7578063c49b9a801461090257610272565b8063764d72bf11610108578063764d72bf146107485780637d1db4a51461077157806388f820201461079c5780638da5cb5b146107d957806395d89b4114610804578063a457c2d71461082f57610272565b80635d098b38146106755780636bc87c3a1461069e57806370a08231146106c9578063715018a61461070657806375f0a8741461071d57610272565b806339509351116101dd5780634549b039116101a15780634549b0391461056557806348c54b9d146105a257806349bd5a5e146105b95780634a74bb02146105e457806352390c021461060f5780635342acb41461063857610272565b806339509351146104825780633ae7dc20146104bf5780633b124fe7146104e85780633bd5d17314610513578063437823ec1461053c57610272565b806323b872dd1161022f57806323b872dd1461036057806329e04b4a1461039d5780632d838119146103c65780632f05205c14610403578063313ce5671461042e5780633685d4191461045957610272565b806306fdde0314610277578063095ea7b3146102a257806313114a9d146102df5780631694505e1461030a57806318160ddd1461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a25565b60405161029991906149fd565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190614ab8565b610ab7565b6040516102d69190614b13565b60405180910390f35b3480156102eb57600080fd5b506102f4610ad5565b6040516103019190614b3d565b60405180910390f35b34801561031657600080fd5b5061031f610adf565b60405161032c9190614bb7565b60405180910390f35b34801561034157600080fd5b5061034a610b03565b6040516103579190614b3d565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190614bd2565b610b0d565b6040516103949190614b13565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190614c25565b610be6565b005b3480156103d257600080fd5b506103ed60048036038101906103e89190614c25565b610cda565b6040516103fa9190614b3d565b60405180910390f35b34801561040f57600080fd5b50610418610d48565b6040516104259190614b13565b60405180910390f35b34801561043a57600080fd5b50610443610d5b565b6040516104509190614c6e565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b9190614c89565b610d72565b005b34801561048e57600080fd5b506104a960048036038101906104a49190614ab8565b6110c1565b6040516104b69190614b13565b60405180910390f35b3480156104cb57600080fd5b506104e660048036038101906104e19190614cf4565b611174565b005b3480156104f457600080fd5b506104fd611323565b60405161050a9190614b3d565b60405180910390f35b34801561051f57600080fd5b5061053a60048036038101906105359190614c25565b611329565b005b34801561054857600080fd5b50610563600480360381019061055e9190614c89565b6114a4565b005b34801561057157600080fd5b5061058c60048036038101906105879190614d60565b611594565b6040516105999190614b3d565b60405180910390f35b3480156105ae57600080fd5b506105b7611618565b005b3480156105c557600080fd5b506105ce611718565b6040516105db9190614daf565b60405180910390f35b3480156105f057600080fd5b506105f961173c565b6040516106069190614b13565b60405180910390f35b34801561061b57600080fd5b5061063660048036038101906106319190614c89565b61174f565b005b34801561064457600080fd5b5061065f600480360381019061065a9190614c89565b611a03565b60405161066c9190614b13565b60405180910390f35b34801561068157600080fd5b5061069c60048036038101906106979190614c89565b611a59565b005b3480156106aa57600080fd5b506106b3611b32565b6040516106c09190614b3d565b60405180910390f35b3480156106d557600080fd5b506106f060048036038101906106eb9190614c89565b611b38565b6040516106fd9190614b3d565b60405180910390f35b34801561071257600080fd5b5061071b611c23565b005b34801561072957600080fd5b50610732611d76565b60405161073f9190614daf565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a9190614e08565b611d9c565b005b34801561077d57600080fd5b50610786611e7b565b6040516107939190614b3d565b60405180910390f35b3480156107a857600080fd5b506107c360048036038101906107be9190614c89565b611e81565b6040516107d09190614b13565b60405180910390f35b3480156107e557600080fd5b506107ee611ed7565b6040516107fb9190614daf565b60405180910390f35b34801561081057600080fd5b50610819611f00565b60405161082691906149fd565b60405180910390f35b34801561083b57600080fd5b5061085660048036038101906108519190614ab8565b611f92565b6040516108639190614b13565b60405180910390f35b34801561087857600080fd5b5061088161205f565b005b34801561088f57600080fd5b50610898612111565b005b3480156108a657600080fd5b506108c160048036038101906108bc9190614ab8565b6122e5565b6040516108ce9190614b13565b60405180910390f35b3480156108e357600080fd5b506108ec612303565b6040516108f99190614b3d565b60405180910390f35b34801561090e57600080fd5b5061092960048036038101906109249190614e35565b61230d565b005b34801561093757600080fd5b506109406123f6565b60405161094d9190614b3d565b60405180910390f35b34801561096257600080fd5b5061097d60048036038101906109789190614c25565b6123fc565b005b34801561098b57600080fd5b506109a660048036038101906109a19190614e62565b6125c3565b6040516109b39190614b3d565b60405180910390f35b3480156109c857600080fd5b506109d161264a565b005b3480156109df57600080fd5b506109fa60048036038101906109f59190614c89565b6126ef565b005b348015610a0857600080fd5b50610a236004803603810190610a1e9190614c89565b6127df565b005b6060600e8054610a3490614ed1565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6090614ed1565b8015610aad5780601f10610a8257610100808354040283529160200191610aad565b820191906000526020600020905b815481529060010190602001808311610a9057829003601f168201915b5050505050905090565b6000610acb610ac46129a1565b84846129a9565b6001905092915050565b6000600c54905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600a54905090565b6000610b1a848484612b74565b610bdb84610b266129a1565b610bd685604051806060016040528060288152602001615d6e60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b8c6129a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee19092919063ffffffff16565b6129a9565b600190509392505050565b610bee6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7290614f4f565b60405180910390fd5b6301312d008111610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb890614fe1565b60405180910390fd5b633b9aca0081610cd19190615030565b60178190555050565b6000600b54821115610d21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d18906150fc565b60405180910390fd5b6000610d2b612f45565b9050610d408184612f7090919063ffffffff16565b915050919050565b600960009054906101000a900460ff1681565b6000601060009054906101000a900460ff16905090565b610d7a6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfe90614f4f565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a90615168565b60405180910390fd5b60005b6008805490508110156110bd578173ffffffffffffffffffffffffffffffffffffffff1660088281548110610ece57610ecd615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110aa5760086001600880549050610f2991906151b7565b81548110610f3a57610f39615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660088281548110610f7957610f78615188565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060088054806110705761106f6151eb565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905590556110bd565b80806110b59061521a565b915050610e96565b5050565b600061116a6110ce6129a1565b8461116585600560006110df6129a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b6129a9565b6001905092915050565b61117c6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120090614f4f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb828473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161125f9190614daf565b60206040518083038186803b15801561127757600080fd5b505afa15801561128b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112af9190615278565b6040518363ffffffff1660e01b81526004016112cc9291906152a5565b602060405180830381600087803b1580156112e657600080fd5b505af11580156112fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131e91906152e3565b505050565b60115481565b60006113336129a1565b9050600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990615382565b60405180910390fd5b60006113cd83613018565b5050505050905061142681600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061147e81600b5461307490919063ffffffff16565b600b8190555061149983600c54612fba90919063ffffffff16565b600c81905550505050565b6114ac6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153090614f4f565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a548311156115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d2906153ee565b60405180910390fd5b816115fb5760006115eb84613018565b5050505050905080915050611612565b600061160684613018565b50505050915050809150505b92915050565b6116206129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490614f4f565b60405180910390fd5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611715573d6000803e3d6000fd5b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b601560019054906101000a900460ff1681565b6117576129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117db90614f4f565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186890615168565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561194557611901600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cda565b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611a616129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae590614f4f565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611bd357600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611c1e565b611c1b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cda565b90505b919050565b611c2b6129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611caf90614f4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611da46129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2890614f4f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611e77573d6000803e3d6000fd5b5050565b60165481565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600f8054611f0f90614ed1565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3b90614ed1565b8015611f885780601f10611f5d57610100808354040283529160200191611f88565b820191906000526020600020905b815481529060010190602001808311611f6b57829003601f168201915b5050505050905090565b6000612055611f9f6129a1565b8461205085604051806060016040528060258152602001615d966025913960056000611fc96129a1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ee19092919063ffffffff16565b6129a9565b6001905092915050565b6120676129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146120f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120eb90614f4f565b60405180910390fd5b6001600960006101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219890615480565b60405180910390fd5b60025442116121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc906154ec565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006122f96122f26129a1565b8484612b74565b6001905092915050565b6000600254905090565b6123156129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146123a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239990614f4f565b60405180910390fd5b80601560016101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159816040516123eb9190614b13565b60405180910390a150565b60175481565b6124046129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612491576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248890614f4f565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804261253f919061550c565b600281905550600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6126526129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146126df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d690614f4f565b60405180910390fd5b66470de4df820000601681905550565b6126f76129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277b90614f4f565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6127e76129a1565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286b90614f4f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156128e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128db906155d4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612a19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1090615666565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612a89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a80906156f8565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612b679190614b3d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612be4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bdb9061578a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c4b9061581c565b60405180910390fd5b60008111612c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8e906158ae565b60405180910390fd5b612c9f611ed7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612d0d5750612cdd611ed7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612d5857601654811115612d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d4e90615940565b60405180910390fd5b5b6000612d6330611b38565b90506016548110612d745760165490505b60006017548210159050808015612d985750601560009054906101000a900460ff16155b8015612df057507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612e085750601560019054906101000a900460ff165b15612e1c576017549150612e1b826130be565b5b600060019050600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ec35750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ecd57600090505b612ed986868684613237565b505050505050565b6000838311158290612f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f2091906149fd565b60405180910390fd5b5060008385612f3891906151b7565b9050809150509392505050565b6000806000612f5261359c565b91509150612f698183612f7090919063ffffffff16565b9250505090565b6000612fb283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061384f565b905092915050565b6000808284612fc9919061550c565b90508381101561300e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613005906159ac565b60405180910390fd5b8091505092915050565b600080600080600080600080600061302f8a6138b2565b925092509250600080600061304d8d8686613048612f45565b61390c565b9250925092508282828888889b509b509b509b509b509b5050505050505091939550919395565b60006130b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ee1565b905092915050565b6001601560006101000a81548160ff02191690831515021790555060006130ef600283612f7090919063ffffffff16565b90506000613106828461307490919063ffffffff16565b9050600047905061311683613995565b600061312b824761307490919063ffffffff16565b905060006131566064613148602385613be190919063ffffffff16565b612f7090919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156131c0573d6000803e3d6000fd5b5080826131cd91906151b7565b91506131d98483613c5c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185838660405161320c939291906159cc565b60405180910390a150505050506000601560006101000a81548160ff02191690831515021790555050565b600960009054906101000a900460ff1661328b57613253611ed7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461328a57600080fd5b5b8061329957613298613d4c565b5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561333c5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156133515761334c848484613d8f565b613588565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156133f45750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561340957613404848484613fef565b613587565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156134ad5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156134c2576134bd84848461424f565b613586565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156135645750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156135795761357484848461441a565b613585565b61358484848461424f565b5b5b5b5b806135965761359561470f565b5b50505050565b6000806000600b5490506000600a54905060005b600880549050811015613812578260036000600884815481106135d6576135d5615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806136c4575081600460006008848154811061365c5761365b615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156136db57600b54600a549450945050505061384b565b61376b60036000600884815481106136f6576136f5615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461307490919063ffffffff16565b92506137fd600460006008848154811061378857613787615188565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361307490919063ffffffff16565b9150808061380a9061521a565b9150506135b0565b5061382a600a54600b54612f7090919063ffffffff16565b82101561384257600b54600a5493509350505061384b565b81819350935050505b9091565b60008083118290613896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388d91906149fd565b60405180910390fd5b50600083856138a59190615a32565b9050809150509392505050565b6000806000806138c185614723565b905060006138ce86614754565b905060006138f7826138e9858a61307490919063ffffffff16565b61307490919063ffffffff16565b90508083839550955095505050509193909250565b6000806000806139258589613be190919063ffffffff16565b9050600061393c8689613be190919063ffffffff16565b905060006139538789613be190919063ffffffff16565b9050600061397c8261396e858761307490919063ffffffff16565b61307490919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000600267ffffffffffffffff8111156139b2576139b1615a63565b5b6040519080825280602002602001820160405280156139e05781602001602082028036833780820191505090505b50905030816000815181106139f8576139f7615188565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613a9857600080fd5b505afa158015613aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ad09190615aa7565b81600181518110613ae457613ae3615188565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613b49307f0000000000000000000000000000000000000000000000000000000000000000846129a9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613bab959493929190615bcd565b600060405180830381600087803b158015613bc557600080fd5b505af1158015613bd9573d6000803e3d6000fd5b505050505050565b600080831415613bf45760009050613c56565b60008284613c029190615030565b9050828482613c119190615a32565b14613c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c4890615c99565b60405180910390fd5b809150505b92915050565b613c87307f0000000000000000000000000000000000000000000000000000000000000000846129a9565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080613cd1611ed7565b426040518863ffffffff1660e01b8152600401613cf396959493929190615cb9565b6060604051808303818588803b158015613d0c57600080fd5b505af1158015613d20573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613d459190615d1a565b5050505050565b6000601154148015613d6057506000601354145b15613d6a57613d8d565b601154601281905550601354601481905550600060118190555060006013819055505b565b600080600080600080613da187613018565b955095509550955095509550613dff87600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613e9486600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f2985600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613f7581614785565b613f7f848361492a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613fdc9190614b3d565b60405180910390a3505050505050505050565b60008060008060008061400187613018565b95509550955095509550955061405f86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506140f483600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061418985600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506141d581614785565b6141df848361492a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161423c9190614b3d565b60405180910390a3505050505050505050565b60008060008060008061426187613018565b9550955095509550955095506142bf86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061435485600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506143a081614785565b6143aa848361492a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516144079190614b3d565b60405180910390a3505050505050505050565b60008060008060008061442c87613018565b95509550955095509550955061448a87600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061451f86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461307490919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506145b483600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061464985600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061469581614785565b61469f848361492a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516146fc9190614b3d565b60405180910390a3505050505050505050565b601254601181905550601454601381905550565b600061474d606461473f60115485613be190919063ffffffff16565b612f7090919063ffffffff16565b9050919050565b600061477e606461477060135485613be190919063ffffffff16565b612f7090919063ffffffff16565b9050919050565b600061478f612f45565b905060006147a68284613be190919063ffffffff16565b90506147fa81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615614925576148e183600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612fba90919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b505050565b61493f82600b5461307490919063ffffffff16565b600b8190555061495a81600c54612fba90919063ffffffff16565b600c819055505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561499e578082015181840152602081019050614983565b838111156149ad576000848401525b50505050565b6000601f19601f8301169050919050565b60006149cf82614964565b6149d9818561496f565b93506149e9818560208601614980565b6149f2816149b3565b840191505092915050565b60006020820190508181036000830152614a1781846149c4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000614a4f82614a24565b9050919050565b614a5f81614a44565b8114614a6a57600080fd5b50565b600081359050614a7c81614a56565b92915050565b6000819050919050565b614a9581614a82565b8114614aa057600080fd5b50565b600081359050614ab281614a8c565b92915050565b60008060408385031215614acf57614ace614a1f565b5b6000614add85828601614a6d565b9250506020614aee85828601614aa3565b9150509250929050565b60008115159050919050565b614b0d81614af8565b82525050565b6000602082019050614b286000830184614b04565b92915050565b614b3781614a82565b82525050565b6000602082019050614b526000830184614b2e565b92915050565b6000819050919050565b6000614b7d614b78614b7384614a24565b614b58565b614a24565b9050919050565b6000614b8f82614b62565b9050919050565b6000614ba182614b84565b9050919050565b614bb181614b96565b82525050565b6000602082019050614bcc6000830184614ba8565b92915050565b600080600060608486031215614beb57614bea614a1f565b5b6000614bf986828701614a6d565b9350506020614c0a86828701614a6d565b9250506040614c1b86828701614aa3565b9150509250925092565b600060208284031215614c3b57614c3a614a1f565b5b6000614c4984828501614aa3565b91505092915050565b600060ff82169050919050565b614c6881614c52565b82525050565b6000602082019050614c836000830184614c5f565b92915050565b600060208284031215614c9f57614c9e614a1f565b5b6000614cad84828501614a6d565b91505092915050565b6000614cc182614a44565b9050919050565b614cd181614cb6565b8114614cdc57600080fd5b50565b600081359050614cee81614cc8565b92915050565b60008060408385031215614d0b57614d0a614a1f565b5b6000614d1985828601614cdf565b9250506020614d2a85828601614a6d565b9150509250929050565b614d3d81614af8565b8114614d4857600080fd5b50565b600081359050614d5a81614d34565b92915050565b60008060408385031215614d7757614d76614a1f565b5b6000614d8585828601614aa3565b9250506020614d9685828601614d4b565b9150509250929050565b614da981614a44565b82525050565b6000602082019050614dc46000830184614da0565b92915050565b6000614dd582614a24565b9050919050565b614de581614dca565b8114614df057600080fd5b50565b600081359050614e0281614ddc565b92915050565b600060208284031215614e1e57614e1d614a1f565b5b6000614e2c84828501614df3565b91505092915050565b600060208284031215614e4b57614e4a614a1f565b5b6000614e5984828501614d4b565b91505092915050565b60008060408385031215614e7957614e78614a1f565b5b6000614e8785828601614a6d565b9250506020614e9885828601614a6d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614ee957607f821691505b60208210811415614efd57614efc614ea2565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614f3960208361496f565b9150614f4482614f03565b602082019050919050565b60006020820190508181036000830152614f6881614f2c565b9050919050565b7f53776170205468726573686f6c6420416d6f756e742063616e6e6f742062652060008201527f6c657373207468616e203639204d696c6c696f6e000000000000000000000000602082015250565b6000614fcb60348361496f565b9150614fd682614f6f565b604082019050919050565b60006020820190508181036000830152614ffa81614fbe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061503b82614a82565b915061504683614a82565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561507f5761507e615001565b5b828202905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006150e6602a8361496f565b91506150f18261508a565b604082019050919050565b60006020820190508181036000830152615115816150d9565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000615152601b8361496f565b915061515d8261511c565b602082019050919050565b6000602082019050818103600083015261518181615145565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006151c282614a82565b91506151cd83614a82565b9250828210156151e0576151df615001565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600061522582614a82565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561525857615257615001565b5b600182019050919050565b60008151905061527281614a8c565b92915050565b60006020828403121561528e5761528d614a1f565b5b600061529c84828501615263565b91505092915050565b60006040820190506152ba6000830185614da0565b6152c76020830184614b2e565b9392505050565b6000815190506152dd81614d34565b92915050565b6000602082840312156152f9576152f8614a1f565b5b6000615307848285016152ce565b91505092915050565b7f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460008201527f6869732066756e6374696f6e0000000000000000000000000000000000000000602082015250565b600061536c602c8361496f565b915061537782615310565b604082019050919050565b6000602082019050818103600083015261539b8161535f565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20737570706c7900600082015250565b60006153d8601f8361496f565b91506153e3826153a2565b602082019050919050565b60006020820190508181036000830152615407816153cb565b9050919050565b7f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c60008201527f6f636b0000000000000000000000000000000000000000000000000000000000602082015250565b600061546a60238361496f565b91506154758261540e565b604082019050919050565b600060208201905081810360008301526154998161545d565b9050919050565b7f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300600082015250565b60006154d6601f8361496f565b91506154e1826154a0565b602082019050919050565b60006020820190508181036000830152615505816154c9565b9050919050565b600061551782614a82565b915061552283614a82565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561555757615556615001565b5b828201905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006155be60268361496f565b91506155c982615562565b604082019050919050565b600060208201905081810360008301526155ed816155b1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061565060248361496f565b915061565b826155f4565b604082019050919050565b6000602082019050818103600083015261567f81615643565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006156e260228361496f565b91506156ed82615686565b604082019050919050565b60006020820190508181036000830152615711816156d5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061577460258361496f565b915061577f82615718565b604082019050919050565b600060208201905081810360008301526157a381615767565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061580660238361496f565b9150615811826157aa565b604082019050919050565b60006020820190508181036000830152615835816157f9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061589860298361496f565b91506158a38261583c565b604082019050919050565b600060208201905081810360008301526158c78161588b565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b600061592a60288361496f565b9150615935826158ce565b604082019050919050565b600060208201905081810360008301526159598161591d565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000615996601b8361496f565b91506159a182615960565b602082019050919050565b600060208201905081810360008301526159c581615989565b9050919050565b60006060820190506159e16000830186614b2e565b6159ee6020830185614b2e565b6159fb6040830184614b2e565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000615a3d82614a82565b9150615a4883614a82565b925082615a5857615a57615a03565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050615aa181614a56565b92915050565b600060208284031215615abd57615abc614a1f565b5b6000615acb84828501615a92565b91505092915050565b6000819050919050565b6000615af9615af4615aef84615ad4565b614b58565b614a82565b9050919050565b615b0981615ade565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b615b4481614a44565b82525050565b6000615b568383615b3b565b60208301905092915050565b6000602082019050919050565b6000615b7a82615b0f565b615b848185615b1a565b9350615b8f83615b2b565b8060005b83811015615bc0578151615ba78882615b4a565b9750615bb283615b62565b925050600181019050615b93565b5085935050505092915050565b600060a082019050615be26000830188614b2e565b615bef6020830187615b00565b8181036040830152615c018186615b6f565b9050615c106060830185614da0565b615c1d6080830184614b2e565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000615c8360218361496f565b9150615c8e82615c27565b604082019050919050565b60006020820190508181036000830152615cb281615c76565b9050919050565b600060c082019050615cce6000830189614da0565b615cdb6020830188614b2e565b615ce86040830187615b00565b615cf56060830186615b00565b615d026080830185614da0565b615d0f60a0830184614b2e565b979650505050505050565b600080600060608486031215615d3357615d32614a1f565b5b6000615d4186828701615263565b9350506020615d5286828701615263565b9250506040615d6386828701615263565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206578cd9cd97bdaa4ccc28284a93d6a6e8574b933582a75a7fa4b079406e1cfbd64736f6c63430008090033