0x608060405234801561001057600080fd5b50600436106101585760003560e01c806374fb20e1116100c3578063a9059cbb1161007c578063a9059cbb146103a5578063b09f1266146103d5578063d28d8852146103f3578063dd62ed3e14610411578063e1e144de14610441578063f2fde38b1461045f57610158565b806374fb20e1146102f557806379cc6790146102ff578063882cfb3f1461031b5780638da5cb5b1461033957806395d89b4114610357578063a457c2d71461037557610158565b8063395093511161011557806339509351146102355780633eaaf86b1461026557806342966c6814610283578063611bf6291461029f57806370a08231146102bb578063715018a6146102eb57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c9578063313ce567146101f957806332424aa314610217575b600080fd5b61016561047b565b60405161017291906113ed565b60405180910390f35b610195600480360381019061019091906114a8565b61050d565b6040516101a29190611503565b60405180910390f35b6101b3610530565b6040516101c0919061152d565b60405180910390f35b6101e360048036038101906101de9190611548565b61053a565b6040516101f09190611503565b60405180910390f35b610201610569565b60405161020e91906115b7565b60405180910390f35b61021f610572565b60405161022c91906115b7565b60405180910390f35b61024f600480360381019061024a91906114a8565b610577565b60405161025c9190611503565b60405180910390f35b61026d6105ae565b60405161027a919061152d565b60405180910390f35b61029d600480360381019061029891906115d2565b6105bd565b005b6102b960048036038101906102b491906115ff565b6105d1565b005b6102d560048036038101906102d091906115ff565b61061d565b6040516102e2919061152d565b60405180910390f35b6102f3610665565b005b6102fd610679565b005b610319600480360381019061031491906114a8565b6106b8565b005b6103236106d8565b604051610330919061168b565b60405180910390f35b6103416106fe565b60405161034e91906116b5565b60405180910390f35b61035f610728565b60405161036c91906113ed565b60405180910390f35b61038f600480360381019061038a91906114a8565b6107ba565b60405161039c9190611503565b60405180910390f35b6103bf60048036038101906103ba91906114a8565b610831565b6040516103cc9190611503565b60405180910390f35b6103dd610854565b6040516103ea91906113ed565b60405180910390f35b6103fb61088d565b60405161040891906113ed565b60405180910390f35b61042b600480360381019061042691906116d0565b6108c6565b604051610438919061152d565b60405180910390f35b61044961094d565b6040516104569190611503565b60405180910390f35b610479600480360381019061047491906115ff565b610960565b005b60606003805461048a9061173f565b80601f01602080910402602001604051908101604052809291908181526020018280546104b69061173f565b80156105035780601f106104d857610100808354040283529160200191610503565b820191906000526020600020905b8154815290600101906020018083116104e657829003601f168201915b5050505050905090565b6000806105186109e3565b90506105258185856109eb565b600191505092915050565b6000600254905090565b6000806105456109e3565b9050610552858285610bb4565b61055d858585610c40565b60019150509392505050565b60006012905090565b601281565b6000806105826109e3565b90506105a381858561059485896108c6565b61059e919061179f565b6109eb565b600191505092915050565b6a70153db7f577c6b780000081565b6105ce6105c86109e3565b82610ebf565b50565b6105d9611095565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61066d611095565b6106776000611113565b565b610681611095565b600660149054906101000a900460ff161561069b57600080fd5b6001600660146101000a81548160ff021916908315150217905550565b6106ca826106c46109e3565b83610bb4565b6106d48282610ebf565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107379061173f565b80601f01602080910402602001604051908101604052809291908181526020018280546107639061173f565b80156107b05780601f10610785576101008083540402835291602001916107b0565b820191906000526020600020905b81548152906001019060200180831161079357829003601f168201915b5050505050905090565b6000806107c56109e3565b905060006107d382866108c6565b905083811015610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90611867565b60405180910390fd5b61082582868684036109eb565b60019250505092915050565b60008061083c6109e3565b9050610849818585610c40565b600191505092915050565b6040518060400160405280600581526020017f434c41505000000000000000000000000000000000000000000000000000000081525081565b6040518060400160405280600d81526020017f57696c6c436c617070436f696e0000000000000000000000000000000000000081525081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660149054906101000a900460ff1681565b610968611095565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce906118f9565b60405180910390fd5b6109e081611113565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a519061198b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090611a1d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ba7919061152d565b60405180910390a3505050565b6000610bc084846108c6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c3a5781811015610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390611a89565b60405180910390fd5b610c3984848484036109eb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690611b1b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1590611bad565b60405180910390fd5b610d298383836111d9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690611c3f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e42919061179f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea6919061152d565b60405180910390a3610eb984848461134f565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590611cd1565b60405180910390fd5b610f3a826000836111d9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790611d63565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546110179190611d83565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161107c919061152d565b60405180910390a36110908360008461134f565b505050565b61109d6109e3565b73ffffffffffffffffffffffffffffffffffffffff166110bb6106fe565b73ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890611e03565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806112405750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61134a57600660149054906101000a900460ff161580156112b05750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561134957600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d37a8dd338585856040518563ffffffff1660e01b81526004016113169493929190611e23565b600060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050505b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561138e578082015181840152602081019050611373565b8381111561139d576000848401525b50505050565b6000601f19601f8301169050919050565b60006113bf82611354565b6113c9818561135f565b93506113d9818560208601611370565b6113e2816113a3565b840191505092915050565b6000602082019050818103600083015261140781846113b4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061143f82611414565b9050919050565b61144f81611434565b811461145a57600080fd5b50565b60008135905061146c81611446565b92915050565b6000819050919050565b61148581611472565b811461149057600080fd5b50565b6000813590506114a28161147c565b92915050565b600080604083850312156114bf576114be61140f565b5b60006114cd8582860161145d565b92505060206114de85828601611493565b9150509250929050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b61152781611472565b82525050565b6000602082019050611542600083018461151e565b92915050565b6000806000606084860312156115615761156061140f565b5b600061156f8682870161145d565b93505060206115808682870161145d565b925050604061159186828701611493565b9150509250925092565b600060ff82169050919050565b6115b18161159b565b82525050565b60006020820190506115cc60008301846115a8565b92915050565b6000602082840312156115e8576115e761140f565b5b60006115f684828501611493565b91505092915050565b6000602082840312156116155761161461140f565b5b60006116238482850161145d565b91505092915050565b6000819050919050565b600061165161164c61164784611414565b61162c565b611414565b9050919050565b600061166382611636565b9050919050565b600061167582611658565b9050919050565b6116858161166a565b82525050565b60006020820190506116a0600083018461167c565b92915050565b6116af81611434565b82525050565b60006020820190506116ca60008301846116a6565b92915050565b600080604083850312156116e7576116e661140f565b5b60006116f58582860161145d565b92505060206117068582860161145d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061175757607f821691505b60208210810361176a57611769611710565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117aa82611472565b91506117b583611472565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117ea576117e9611770565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061185160258361135f565b915061185c826117f5565b604082019050919050565b6000602082019050818103600083015261188081611844565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118e360268361135f565b91506118ee82611887565b604082019050919050565b60006020820190508181036000830152611912816118d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061197560248361135f565b915061198082611919565b604082019050919050565b600060208201905081810360008301526119a481611968565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a0760228361135f565b9150611a12826119ab565b604082019050919050565b60006020820190508181036000830152611a36816119fa565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611a73601d8361135f565b9150611a7e82611a3d565b602082019050919050565b60006020820190508181036000830152611aa281611a66565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611b0560258361135f565b9150611b1082611aa9565b604082019050919050565b60006020820190508181036000830152611b3481611af8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b9760238361135f565b9150611ba282611b3b565b604082019050919050565b60006020820190508181036000830152611bc681611b8a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611c2960268361135f565b9150611c3482611bcd565b604082019050919050565b60006020820190508181036000830152611c5881611c1c565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cbb60218361135f565b9150611cc682611c5f565b604082019050919050565b60006020820190508181036000830152611cea81611cae565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d4d60228361135f565b9150611d5882611cf1565b604082019050919050565b60006020820190508181036000830152611d7c81611d40565b9050919050565b6000611d8e82611472565b9150611d9983611472565b925082821015611dac57611dab611770565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ded60208361135f565b9150611df882611db7565b602082019050919050565b60006020820190508181036000830152611e1c81611de0565b9050919050565b6000608082019050611e3860008301876116a6565b611e4560208301866116a6565b611e5260408301856116a6565b611e5f606083018461151e565b9594505050505056fea2646970667358221220ba8a187120e274b50be757da609528cb6a3ed18cec75ad5579b3b3e02858caae64736f6c634300080e0033
0x60806040526000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005357600080fd5b506040518060400160405280600d81526020017f57696c6c436c617070436f696e000000000000000000000000000000000000008152506040518060400160405280600581526020017f434c4150500000000000000000000000000000000000000000000000000000008152508160039080519060200190620000d892919062000500565b508060049080519060200190620000f192919062000500565b50505062000114620001086200013760201b60201c565b6200013f60201b60201c565b62000131336a70153db7f577c6b78000006200020560201b60201c565b620007ed565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000277576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200026e9062000611565b60405180910390fd5b6200028b600083836200037d60201b60201c565b80600260008282546200029f91906200066c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002f691906200066c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200035d9190620006da565b60405180910390a36200037960008383620004fb60201b60201c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620003e55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b620004f657600660149054906101000a900460ff16158015620004575750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15620004f557600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d37a8dd338585856040518563ffffffff1660e01b8152600401620004c094939291906200073c565b600060405180830381600087803b158015620004db57600080fd5b505af1158015620004f0573d6000803e3d6000fd5b505050505b5b505050565b505050565b8280546200050e90620007b8565b90600052602060002090601f0160209004810192826200053257600085556200057e565b82601f106200054d57805160ff19168380011785556200057e565b828001600101855582156200057e579182015b828111156200057d57825182559160200191906001019062000560565b5b5090506200058d919062000591565b5090565b5b80821115620005ac57600081600090555060010162000592565b5090565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620005f9601f83620005b0565b91506200060682620005c1565b602082019050919050565b600060208201905081810360008301526200062c81620005ea565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006798262000633565b9150620006868362000633565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006be57620006bd6200063d565b5b828201905092915050565b620006d48162000633565b82525050565b6000602082019050620006f16000830184620006c9565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200072482620006f7565b9050919050565b620007368162000717565b82525050565b60006080820190506200075360008301876200072b565b6200076260208301866200072b565b6200077160408301856200072b565b620007806060830184620006c9565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007d157607f821691505b602082108103620007e757620007e662000789565b5b50919050565b611e9e80620007fd6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806374fb20e1116100c3578063a9059cbb1161007c578063a9059cbb146103a5578063b09f1266146103d5578063d28d8852146103f3578063dd62ed3e14610411578063e1e144de14610441578063f2fde38b1461045f57610158565b806374fb20e1146102f557806379cc6790146102ff578063882cfb3f1461031b5780638da5cb5b1461033957806395d89b4114610357578063a457c2d71461037557610158565b8063395093511161011557806339509351146102355780633eaaf86b1461026557806342966c6814610283578063611bf6291461029f57806370a08231146102bb578063715018a6146102eb57610158565b806306fdde031461015d578063095ea7b31461017b57806318160ddd146101ab57806323b872dd146101c9578063313ce567146101f957806332424aa314610217575b600080fd5b61016561047b565b60405161017291906113ed565b60405180910390f35b610195600480360381019061019091906114a8565b61050d565b6040516101a29190611503565b60405180910390f35b6101b3610530565b6040516101c0919061152d565b60405180910390f35b6101e360048036038101906101de9190611548565b61053a565b6040516101f09190611503565b60405180910390f35b610201610569565b60405161020e91906115b7565b60405180910390f35b61021f610572565b60405161022c91906115b7565b60405180910390f35b61024f600480360381019061024a91906114a8565b610577565b60405161025c9190611503565b60405180910390f35b61026d6105ae565b60405161027a919061152d565b60405180910390f35b61029d600480360381019061029891906115d2565b6105bd565b005b6102b960048036038101906102b491906115ff565b6105d1565b005b6102d560048036038101906102d091906115ff565b61061d565b6040516102e2919061152d565b60405180910390f35b6102f3610665565b005b6102fd610679565b005b610319600480360381019061031491906114a8565b6106b8565b005b6103236106d8565b604051610330919061168b565b60405180910390f35b6103416106fe565b60405161034e91906116b5565b60405180910390f35b61035f610728565b60405161036c91906113ed565b60405180910390f35b61038f600480360381019061038a91906114a8565b6107ba565b60405161039c9190611503565b60405180910390f35b6103bf60048036038101906103ba91906114a8565b610831565b6040516103cc9190611503565b60405180910390f35b6103dd610854565b6040516103ea91906113ed565b60405180910390f35b6103fb61088d565b60405161040891906113ed565b60405180910390f35b61042b600480360381019061042691906116d0565b6108c6565b604051610438919061152d565b60405180910390f35b61044961094d565b6040516104569190611503565b60405180910390f35b610479600480360381019061047491906115ff565b610960565b005b60606003805461048a9061173f565b80601f01602080910402602001604051908101604052809291908181526020018280546104b69061173f565b80156105035780601f106104d857610100808354040283529160200191610503565b820191906000526020600020905b8154815290600101906020018083116104e657829003601f168201915b5050505050905090565b6000806105186109e3565b90506105258185856109eb565b600191505092915050565b6000600254905090565b6000806105456109e3565b9050610552858285610bb4565b61055d858585610c40565b60019150509392505050565b60006012905090565b601281565b6000806105826109e3565b90506105a381858561059485896108c6565b61059e919061179f565b6109eb565b600191505092915050565b6a70153db7f577c6b780000081565b6105ce6105c86109e3565b82610ebf565b50565b6105d9611095565b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61066d611095565b6106776000611113565b565b610681611095565b600660149054906101000a900460ff161561069b57600080fd5b6001600660146101000a81548160ff021916908315150217905550565b6106ca826106c46109e3565b83610bb4565b6106d48282610ebf565b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546107379061173f565b80601f01602080910402602001604051908101604052809291908181526020018280546107639061173f565b80156107b05780601f10610785576101008083540402835291602001916107b0565b820191906000526020600020905b81548152906001019060200180831161079357829003601f168201915b5050505050905090565b6000806107c56109e3565b905060006107d382866108c6565b905083811015610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90611867565b60405180910390fd5b61082582868684036109eb565b60019250505092915050565b60008061083c6109e3565b9050610849818585610c40565b600191505092915050565b6040518060400160405280600581526020017f434c41505000000000000000000000000000000000000000000000000000000081525081565b6040518060400160405280600d81526020017f57696c6c436c617070436f696e0000000000000000000000000000000000000081525081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660149054906101000a900460ff1681565b610968611095565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce906118f9565b60405180910390fd5b6109e081611113565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a519061198b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090611a1d565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ba7919061152d565b60405180910390a3505050565b6000610bc084846108c6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610c3a5781811015610c2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2390611a89565b60405180910390fd5b610c3984848484036109eb565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610caf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca690611b1b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1590611bad565b60405180910390fd5b610d298383836111d9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690611c3f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610e42919061179f565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ea6919061152d565b60405180910390a3610eb984848461134f565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590611cd1565b60405180910390fd5b610f3a826000836111d9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790611d63565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546110179190611d83565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161107c919061152d565b60405180910390a36110908360008461134f565b505050565b61109d6109e3565b73ffffffffffffffffffffffffffffffffffffffff166110bb6106fe565b73ffffffffffffffffffffffffffffffffffffffff1614611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890611e03565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806112405750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61134a57600660149054906101000a900460ff161580156112b05750600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b1561134957600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d37a8dd338585856040518563ffffffff1660e01b81526004016113169493929190611e23565b600060405180830381600087803b15801561133057600080fd5b505af1158015611344573d6000803e3d6000fd5b505050505b5b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561138e578082015181840152602081019050611373565b8381111561139d576000848401525b50505050565b6000601f19601f8301169050919050565b60006113bf82611354565b6113c9818561135f565b93506113d9818560208601611370565b6113e2816113a3565b840191505092915050565b6000602082019050818103600083015261140781846113b4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061143f82611414565b9050919050565b61144f81611434565b811461145a57600080fd5b50565b60008135905061146c81611446565b92915050565b6000819050919050565b61148581611472565b811461149057600080fd5b50565b6000813590506114a28161147c565b92915050565b600080604083850312156114bf576114be61140f565b5b60006114cd8582860161145d565b92505060206114de85828601611493565b9150509250929050565b60008115159050919050565b6114fd816114e8565b82525050565b600060208201905061151860008301846114f4565b92915050565b61152781611472565b82525050565b6000602082019050611542600083018461151e565b92915050565b6000806000606084860312156115615761156061140f565b5b600061156f8682870161145d565b93505060206115808682870161145d565b925050604061159186828701611493565b9150509250925092565b600060ff82169050919050565b6115b18161159b565b82525050565b60006020820190506115cc60008301846115a8565b92915050565b6000602082840312156115e8576115e761140f565b5b60006115f684828501611493565b91505092915050565b6000602082840312156116155761161461140f565b5b60006116238482850161145d565b91505092915050565b6000819050919050565b600061165161164c61164784611414565b61162c565b611414565b9050919050565b600061166382611636565b9050919050565b600061167582611658565b9050919050565b6116858161166a565b82525050565b60006020820190506116a0600083018461167c565b92915050565b6116af81611434565b82525050565b60006020820190506116ca60008301846116a6565b92915050565b600080604083850312156116e7576116e661140f565b5b60006116f58582860161145d565b92505060206117068582860161145d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061175757607f821691505b60208210810361176a57611769611710565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117aa82611472565b91506117b583611472565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156117ea576117e9611770565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061185160258361135f565b915061185c826117f5565b604082019050919050565b6000602082019050818103600083015261188081611844565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118e360268361135f565b91506118ee82611887565b604082019050919050565b60006020820190508181036000830152611912816118d6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061197560248361135f565b915061198082611919565b604082019050919050565b600060208201905081810360008301526119a481611968565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611a0760228361135f565b9150611a12826119ab565b604082019050919050565b60006020820190508181036000830152611a36816119fa565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611a73601d8361135f565b9150611a7e82611a3d565b602082019050919050565b60006020820190508181036000830152611aa281611a66565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611b0560258361135f565b9150611b1082611aa9565b604082019050919050565b60006020820190508181036000830152611b3481611af8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611b9760238361135f565b9150611ba282611b3b565b604082019050919050565b60006020820190508181036000830152611bc681611b8a565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611c2960268361135f565b9150611c3482611bcd565b604082019050919050565b60006020820190508181036000830152611c5881611c1c565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000611cbb60218361135f565b9150611cc682611c5f565b604082019050919050565b60006020820190508181036000830152611cea81611cae565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d4d60228361135f565b9150611d5882611cf1565b604082019050919050565b60006020820190508181036000830152611d7c81611d40565b9050919050565b6000611d8e82611472565b9150611d9983611472565b925082821015611dac57611dab611770565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611ded60208361135f565b9150611df882611db7565b602082019050919050565b60006020820190508181036000830152611e1c81611de0565b9050919050565b6000608082019050611e3860008301876116a6565b611e4560208301866116a6565b611e5260408301856116a6565b611e5f606083018461151e565b9594505050505056fea2646970667358221220ba8a187120e274b50be757da609528cb6a3ed18cec75ad5579b3b3e02858caae64736f6c634300080e0033