60806040523480156200001157600080fd5b50601260ff16600a62000025919062000393565b62c65d40620000359190620003e4565b600081905550600054600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260ff16600a620000d5919062000393565b61029a620000e49190620003e4565b6001819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000546040516200014c919062000456565b60405180910390a3600073bbd707815a7f7eb6897c7686274afabd7b579ff690508073ffffffffffffffffffffffffffffffffffffffff16634420e486336040518263ffffffff1660e01b8152600401620001a89190620004b8565b602060405180830381600087803b158015620001c357600080fd5b505af1158015620001d8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fe91906200050b565b50506200053d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000294578086048111156200026c576200026b62000206565b5b60018516156200027c5780820291505b80810290506200028c8562000235565b94506200024c565b94509492505050565b600082620002af576001905062000382565b81620002bf576000905062000382565b8160018114620002d85760028114620002e35762000319565b600191505062000382565b60ff841115620002f857620002f762000206565b5b8360020a91508482111562000312576200031162000206565b5b5062000382565b5060208310610133831016604e8410600b8410161715620003535782820a9050838111156200034d576200034c62000206565b5b62000382565b62000362848484600162000242565b925090508184048111156200037c576200037b62000206565b5b81810290505b9392505050565b6000819050919050565b6000620003a08262000389565b9150620003ad8362000389565b9250620003dc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200029d565b905092915050565b6000620003f18262000389565b9150620003fe8362000389565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200043a576200043962000206565b5b828202905092915050565b620004508162000389565b82525050565b60006020820190506200046d600083018462000445565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004a08262000473565b9050919050565b620004b28162000493565b82525050565b6000602082019050620004cf6000830184620004a7565b92915050565b600080fd5b620004e58162000389565b8114620004f157600080fd5b50565b6000815190506200050581620004da565b92915050565b600060208284031215620005245762000523620004d5565b5b60006200053484828501620004f4565b91505092915050565b611786806200054d6000396000f3fe6080604052600436106100ab5760003560e01c8063395093511161006457806339509351146102a957806370a08231146102e657806395d89b4114610323578063a457c2d71461034e578063a9059cbb1461038b578063dd62ed3e146103c857610180565b806306fdde0314610185578063095ea7b3146101b057806318160ddd146101ed57806323b872dd146102185780632e1a7d4d14610255578063313ce5671461027e57610180565b3661018057655af3107a40003410156100f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100f090610e40565b60405180910390fd5b6000600154346101099190610e99565b9050600054811115610150576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014790610f65565b60405180910390fd5b61017d600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff163383610405565b50005b600080fd5b34801561019157600080fd5b5061019a6105fb565b6040516101a7919061100d565b60405180910390f35b3480156101bc57600080fd5b506101d760048036038101906101d291906110be565b610634565b6040516101e49190611119565b60405180910390f35b3480156101f957600080fd5b5061020261064b565b60405161020f9190611143565b60405180910390f35b34801561022457600080fd5b5061023f600480360381019061023a919061115e565b610654565b60405161024c9190611119565b60405180910390f35b34801561026157600080fd5b5061027c600480360381019061027791906111b1565b610747565b005b34801561028a57600080fd5b50610293610949565b6040516102a091906111fa565b60405180910390f35b3480156102b557600080fd5b506102d060048036038101906102cb91906110be565b61094e565b6040516102dd9190611119565b60405180910390f35b3480156102f257600080fd5b5061030d60048036038101906103089190611215565b6109ec565b60405161031a9190611143565b60405180910390f35b34801561032f57600080fd5b50610338610a35565b604051610345919061100d565b60405180910390f35b34801561035a57600080fd5b50610375600480360381019061037091906110be565b610a6e565b6040516103829190611119565b60405180910390f35b34801561039757600080fd5b506103b260048036038101906103ad91906110be565b610b54565b6040516103bf9190611119565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190611242565b610b6b565b6040516103fc9190611143565b60405180910390f35b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046c906112f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156104e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104dc90611386565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461053491906113a6565b9250508190555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461058a91906113da565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516105ee9190611143565b60405180910390a3505050565b6040518060400160405280600581526020017f5370656c7300000000000000000000000000000000000000000000000000000081525081565b6000610641338484610bf2565b6001905092915050565b60008054905090565b6000610661848484610405565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c906114a2565b60405180910390fd5b61073b8533858461073691906113a6565b610bf2565b60019150509392505050565b6000811161078a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107819061150e565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561080c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108039061157a565b60405180910390fd5b80600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461085b91906113a6565b925050819055508060008082825461087391906113a6565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516108d89190611143565b60405180910390a3600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb8360405161093e9190611143565b60405180910390a350565b601281565b60006109e2338484600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109dd91906113da565b610bf2565b6001905092915050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6040518060400160405280600381526020017f53504c000000000000000000000000000000000000000000000000000000000081525081565b600080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2a9061160c565b60405180910390fd5b610b4933858584610b4491906113a6565b610bf2565b600191505092915050565b6000610b61338484610405565b6001905092915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c599061169e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc990611730565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610db09190611143565b60405180910390a3505050565b600082825260208201905092915050565b7f4d696e696d756d20302e3030303120657468657220726571756972656420746f60008201527f20707572636861736520746f6b656e7300000000000000000000000000000000602082015250565b6000610e2a603083610dbd565b9150610e3582610dce565b604082019050919050565b60006020820190508181036000830152610e5981610e1d565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610ea482610e60565b9150610eaf83610e60565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615610ee857610ee7610e6a565b5b828202905092915050565b7f4e6f7420656e6f75676820746f6b656e7320617661696c61626c6520666f722060008201527f7075726368617365000000000000000000000000000000000000000000000000602082015250565b6000610f4f602883610dbd565b9150610f5a82610ef3565b604082019050919050565b60006020820190508181036000830152610f7e81610f42565b9050919050565b600081519050919050565b60005b83811015610fae578082015181840152602081019050610f93565b83811115610fbd576000848401525b50505050565b6000601f19601f8301169050919050565b6000610fdf82610f85565b610fe98185610dbd565b9350610ff9818560208601610f90565b61100281610fc3565b840191505092915050565b600060208201905081810360008301526110278184610fd4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061105f82611034565b9050919050565b61106f81611054565b811461107a57600080fd5b50565b60008135905061108c81611066565b92915050565b61109b81610e60565b81146110a657600080fd5b50565b6000813590506110b881611092565b92915050565b600080604083850312156110d5576110d461102f565b5b60006110e38582860161107d565b92505060206110f4858286016110a9565b9150509250929050565b60008115159050919050565b611113816110fe565b82525050565b600060208201905061112e600083018461110a565b92915050565b61113d81610e60565b82525050565b60006020820190506111586000830184611134565b92915050565b6000806000606084860312156111775761117661102f565b5b60006111858682870161107d565b93505060206111968682870161107d565b92505060406111a7868287016110a9565b9150509250925092565b6000602082840312156111c7576111c661102f565b5b60006111d5848285016110a9565b91505092915050565b600060ff82169050919050565b6111f4816111de565b82525050565b600060208201905061120f60008301846111eb565b92915050565b60006020828403121561122b5761122a61102f565b5b60006112398482850161107d565b91505092915050565b600080604083850312156112595761125861102f565b5b60006112678582860161107d565b92505060206112788582860161107d565b9150509250929050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006112de602583610dbd565b91506112e982611282565b604082019050919050565b6000602082019050818103600083015261130d816112d1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611370602383610dbd565b915061137b82611314565b604082019050919050565b6000602082019050818103600083015261139f81611363565b9050919050565b60006113b182610e60565b91506113bc83610e60565b9250828210156113cf576113ce610e6a565b5b828203905092915050565b60006113e582610e60565b91506113f083610e60565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561142557611424610e6a565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061148c602883610dbd565b915061149782611430565b604082019050919050565b600060208201905081810360008301526114bb8161147f565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b60006114f8601d83610dbd565b9150611503826114c2565b602082019050919050565b60006020820190508181036000830152611527816114eb565b9050919050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000611564601483610dbd565b915061156f8261152e565b602082019050919050565b6000602082019050818103600083015261159381611557565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006115f6602583610dbd565b91506116018261159a565b604082019050919050565b60006020820190508181036000830152611625816115e9565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611688602483610dbd565b91506116938261162c565b604082019050919050565b600060208201905081810360008301526116b78161167b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061171a602283610dbd565b9150611725826116be565b604082019050919050565b600060208201905081810360008301526117498161170d565b905091905056fea26469706673582212205780e907603de0319c49f1659ecf05268c90a22ca040997803bcfe94025ecc2864736f6c63430008090033