60806040526005600655600560075561dead600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060146011553480156200006357600080fd5b5060405162003f1238038062003f12833981810160405281019062000089919062000c08565b6040518060400160405280600481526020017f4f524649000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4f52504800000000000000000000000000000000000000000000000000000000815250816003908162000106919062000ed4565b50806004908162000118919062000ed4565b50505060006200012d620007d460201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a81905550600073548625e4184f59d1afce7cbe67a67d5d9ef39029905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e2919062000fbb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000370919062000fbb565b6040518363ffffffff1660e01b81526004016200038f92919062000ffe565b6020604051808303816000875af1158015620003af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d5919062000fbb565b905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004ae30600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620007dc60201b60201c565b6001600f6000620004c4620009ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f6000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600f60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000620005fd620009ad60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007a46200078c620009ad60201b60201c565b6a115eec47f6cf7e35000000620009d760201b60201c565b6101f4620007b762000b4f60201b60201c565b620007c3919062001089565b600e819055505050505050620012dd565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200084e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008459062001148565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008c0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b790620011e0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620009a0919062001213565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a409062001280565b60405180910390fd5b62000a5d6000838362000b5960201b60201c565b806002600082825462000a719190620012a2565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000ac89190620012a2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b2f919062001213565b60405180910390a362000b4b6000838362000b5e60201b60201c565b5050565b6000600254905090565b505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b958262000b68565b9050919050565b62000ba78162000b88565b811462000bb357600080fd5b50565b60008151905062000bc78162000b9c565b92915050565b6000819050919050565b62000be28162000bcd565b811462000bee57600080fd5b50565b60008151905062000c028162000bd7565b92915050565b60008060006060848603121562000c245762000c2362000b63565b5b600062000c348682870162000bb6565b935050602062000c478682870162000bb6565b925050604062000c5a8682870162000bf1565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ce657607f821691505b60208210810362000cfc5762000cfb62000c9e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d667fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d27565b62000d72868362000d27565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000db562000daf62000da98462000bcd565b62000d8a565b62000bcd565b9050919050565b6000819050919050565b62000dd18362000d94565b62000de962000de08262000dbc565b84845462000d34565b825550505050565b600090565b62000e0062000df1565b62000e0d81848462000dc6565b505050565b5b8181101562000e355762000e2960008262000df6565b60018101905062000e13565b5050565b601f82111562000e845762000e4e8162000d02565b62000e598462000d17565b8101602085101562000e69578190505b62000e8162000e788562000d17565b83018262000e12565b50505b505050565b600082821c905092915050565b600062000ea96000198460080262000e89565b1980831691505092915050565b600062000ec4838362000e96565b9150826002028217905092915050565b62000edf8262000c64565b67ffffffffffffffff81111562000efb5762000efa62000c6f565b5b62000f07825462000ccd565b62000f1482828562000e39565b600060209050601f83116001811462000f4c576000841562000f37578287015190505b62000f43858262000eb6565b86555062000fb3565b601f19841662000f5c8662000d02565b60005b8281101562000f865784890151825560018201915060208501945060208101905062000f5f565b8683101562000fa6578489015162000fa2601f89168262000e96565b8355505b6001600288020188555050505b505050505050565b60006020828403121562000fd45762000fd362000b63565b5b600062000fe48482850162000bb6565b91505092915050565b62000ff88162000b88565b82525050565b600060408201905062001015600083018562000fed565b62001024602083018462000fed565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010968262000bcd565b9150620010a38362000bcd565b925082620010b657620010b56200102b565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062001130602483620010c1565b91506200113d82620010d2565b604082019050919050565b60006020820190508181036000830152620011638162001121565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011c8602283620010c1565b9150620011d5826200116a565b604082019050919050565b60006020820190508181036000830152620011fb81620011b9565b9050919050565b6200120d8162000bcd565b82525050565b60006020820190506200122a600083018462001202565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062001268601f83620010c1565b9150620012758262001230565b602082019050919050565b600060208201905081810360008301526200129b8162001259565b9050919050565b6000620012af8262000bcd565b9150620012bc8362000bcd565b9250828201905080821115620012d757620012d66200105a565b5b92915050565b612c2580620012ed6000396000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab578063a70419d21161006f578063a70419d214610405578063a9059cbb1461041c578063dd62ed3e14610459578063e2f4560514610496578063e5a70ef7146104c1578063f2fde38b146104ec57610135565b806370a082311461031e578063715018a61461035b5780638da5cb5b1461037257806395d89b411461039d578063a457c2d7146103c857610135565b80632b14ca56116100f25780632b14ca5614610235578063313ce56714610260578063395093511461028b57806347062402146102c857806349bd5a5e146102f357610135565b806306fdde031461013a578063095ea7b3146101655780631694505e146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f610515565b60405161015c9190611e2f565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611eea565b6105a7565b6040516101999190611f45565b60405180910390f35b3480156101ae57600080fd5b506101b76105c5565b6040516101c49190611fbf565b60405180910390f35b3480156101d957600080fd5b506101e26105eb565b6040516101ef9190611fe9565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190612004565b6105f5565b60405161022c9190611f45565b60405180910390f35b34801561024157600080fd5b5061024a610714565b6040516102579190611fe9565b60405180910390f35b34801561026c57600080fd5b5061027561071a565b6040516102829190612073565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190611eea565b610723565b6040516102bf9190611f45565b60405180910390f35b3480156102d457600080fd5b506102dd6107cf565b6040516102ea9190611fe9565b60405180910390f35b3480156102ff57600080fd5b506103086107d5565b604051610315919061209d565b60405180910390f35b34801561032a57600080fd5b50610345600480360381019061034091906120b8565b6107fb565b6040516103529190611fe9565b60405180910390f35b34801561036757600080fd5b50610370610843565b005b34801561037e57600080fd5b5061038761099b565b604051610394919061209d565b60405180910390f35b3480156103a957600080fd5b506103b26109c5565b6040516103bf9190611e2f565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190611eea565b610a57565b6040516103fc9190611f45565b60405180910390f35b34801561041157600080fd5b5061041a610b42565b005b34801561042857600080fd5b50610443600480360381019061043e9190611eea565b610c3a565b6040516104509190611f45565b60405180910390f35b34801561046557600080fd5b50610480600480360381019061047b91906120e5565b610c58565b60405161048d9190611fe9565b60405180910390f35b3480156104a257600080fd5b506104ab610cdf565b6040516104b89190611fe9565b60405180910390f35b3480156104cd57600080fd5b506104d6610ce5565b6040516104e39190611fe9565b60405180910390f35b3480156104f857600080fd5b50610513600480360381019061050e91906120b8565b610ceb565b005b60606003805461052490612154565b80601f016020809104026020016040519081016040528092919081815260200182805461055090612154565b801561059d5780601f106105725761010080835404028352916020019161059d565b820191906000526020600020905b81548152906001019060200180831161058057829003601f168201915b5050505050905090565b60006105bb6105b4610eb1565b8484610eb9565b6001905092915050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610641610eb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146106fd57828110156106e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106df906121f7565b60405180910390fd5b6106fc856106f4610eb1565b858403610eb9565b5b610708858585611082565b60019150509392505050565b60075481565b60006012905090565b60006107c5610730610eb1565b84846001600061073e610eb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107c09190612246565b610eb9565b6001905092915050565b60065481565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61084b610eb1565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d1906122c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109d490612154565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0090612154565b8015610a4d5780601f10610a2257610100808354040283529160200191610a4d565b820191906000526020600020905b815481529060010190602001808311610a3057829003601f168201915b5050505050905090565b60008060016000610a66610eb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1a90612358565b60405180910390fd5b610b37610b2e610eb1565b85858403610eb9565b600191505092915050565b610b4a610eb1565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd0906122c6565b60405180910390fd5b6001600a5403610c1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c15906123c4565b60405180910390fd5b6001600a6000828254610c3191906123e4565b92505081905550565b6000610c4e610c47610eb1565b8484611082565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b600a5481565b610cf3610eb1565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d79906122c6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de89061248a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1f9061251c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e906125ae565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516110759190611fe9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e890612640565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611160576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611157906126d2565b60405180910390fd5b600081036111795761117483836000611a22565b611a1d565b6000611184306107fb565b90506000600e5482101590508080156111aa5750600d60149054906101000a900460ff16155b80156112045750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561125a5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156112b05750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611596576001600d60146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156112ed576112ec6126f2565b5b60405190808252806020026020018201604052801561131b5781602001602082028036833780820191505090505b509050308160008151811061133357611332612721565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fe9190612765565b8160018151811061141257611411612721565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b81526004016114b095949392919061288b565b600060405180830381600087803b1580156114ca57600080fd5b505af11580156114de573d6000803e3d6000fd5b5050505060004790506000811115611578576000606460508361150191906128e5565b61150b9190612956565b90506000818361151b91906123e4565b9050611549600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611ca1565b611575600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611ca1565b50505b6000600d60146101000a81548160ff02191690831515021790555050505b6000600d60149054906101000a900460ff16159050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061164c5750600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806116ff5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156116fe5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b5b1561170957600090505b8015611828576000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff160361177d57600a5460065461177691906128e5565b90506117e6565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16036117e557600a546007546117e291906128e5565b90505b5b6000811115611826576000606482876117ff91906128e5565b6118099190612956565b9050808661181791906123e4565b9550611824883083611a22565b505b505b60001515601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480156118d8575060001515601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156119325750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561198b5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b15611a0e57600061199b866107fb565b90506103e86011546119ab6105eb565b6119b591906128e5565b6119bf9190612956565b85826119cb9190612246565b1115611a0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a03906129f9565b60405180910390fd5b505b611a19868686611a22565b5050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8890612640565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af7906126d2565b60405180910390fd5b611b0b838383611d95565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8890612a8b565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c249190612246565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c889190611fe9565b60405180910390a3611c9b848484611d9a565b50505050565b80471015611ce4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cdb90612af7565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611d0a90612b48565b60006040518083038185875af1925050503d8060008114611d47576040519150601f19603f3d011682016040523d82523d6000602084013e611d4c565b606091505b5050905080611d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8790612bcf565b60405180910390fd5b505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611dd9578082015181840152602081019050611dbe565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e0182611d9f565b611e0b8185611daa565b9350611e1b818560208601611dbb565b611e2481611de5565b840191505092915050565b60006020820190508181036000830152611e498184611df6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e8182611e56565b9050919050565b611e9181611e76565b8114611e9c57600080fd5b50565b600081359050611eae81611e88565b92915050565b6000819050919050565b611ec781611eb4565b8114611ed257600080fd5b50565b600081359050611ee481611ebe565b92915050565b60008060408385031215611f0157611f00611e51565b5b6000611f0f85828601611e9f565b9250506020611f2085828601611ed5565b9150509250929050565b60008115159050919050565b611f3f81611f2a565b82525050565b6000602082019050611f5a6000830184611f36565b92915050565b6000819050919050565b6000611f85611f80611f7b84611e56565b611f60565b611e56565b9050919050565b6000611f9782611f6a565b9050919050565b6000611fa982611f8c565b9050919050565b611fb981611f9e565b82525050565b6000602082019050611fd46000830184611fb0565b92915050565b611fe381611eb4565b82525050565b6000602082019050611ffe6000830184611fda565b92915050565b60008060006060848603121561201d5761201c611e51565b5b600061202b86828701611e9f565b935050602061203c86828701611e9f565b925050604061204d86828701611ed5565b9150509250925092565b600060ff82169050919050565b61206d81612057565b82525050565b60006020820190506120886000830184612064565b92915050565b61209781611e76565b82525050565b60006020820190506120b2600083018461208e565b92915050565b6000602082840312156120ce576120cd611e51565b5b60006120dc84828501611e9f565b91505092915050565b600080604083850312156120fc576120fb611e51565b5b600061210a85828601611e9f565b925050602061211b85828601611e9f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061216c57607f821691505b60208210810361217f5761217e612125565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006121e1602883611daa565b91506121ec82612185565b604082019050919050565b60006020820190508181036000830152612210816121d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061225182611eb4565b915061225c83611eb4565b925082820190508082111561227457612273612217565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006122b0602083611daa565b91506122bb8261227a565b602082019050919050565b600060208201905081810360008301526122df816122a3565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612342602583611daa565b915061234d826122e6565b604082019050919050565b6000602082019050818103600083015261237181612335565b9050919050565b7f4c696d69747320616c72656164792072656d6f76656400000000000000000000600082015250565b60006123ae601683611daa565b91506123b982612378565b602082019050919050565b600060208201905081810360008301526123dd816123a1565b9050919050565b60006123ef82611eb4565b91506123fa83611eb4565b925082820390508181111561241257612411612217565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612474602683611daa565b915061247f82612418565b604082019050919050565b600060208201905081810360008301526124a381612467565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612506602483611daa565b9150612511826124aa565b604082019050919050565b60006020820190508181036000830152612535816124f9565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612598602283611daa565b91506125a38261253c565b604082019050919050565b600060208201905081810360008301526125c78161258b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061262a602583611daa565b9150612635826125ce565b604082019050919050565b600060208201905081810360008301526126598161261d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006126bc602383611daa565b91506126c782612660565b604082019050919050565b600060208201905081810360008301526126eb816126af565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061275f81611e88565b92915050565b60006020828403121561277b5761277a611e51565b5b600061278984828501612750565b91505092915050565b6000819050919050565b60006127b76127b26127ad84612792565b611f60565b611eb4565b9050919050565b6127c78161279c565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61280281611e76565b82525050565b600061281483836127f9565b60208301905092915050565b6000602082019050919050565b6000612838826127cd565b61284281856127d8565b935061284d836127e9565b8060005b8381101561287e5781516128658882612808565b975061287083612820565b925050600181019050612851565b5085935050505092915050565b600060a0820190506128a06000830188611fda565b6128ad60208301876127be565b81810360408301526128bf818661282d565b90506128ce606083018561208e565b6128db6080830184611fda565b9695505050505050565b60006128f082611eb4565b91506128fb83611eb4565b925082820261290981611eb4565b915082820484148315176129205761291f612217565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061296182611eb4565b915061296c83611eb4565b92508261297c5761297b612927565b5b828204905092915050565b7f4d617857616c6c65743a20526563697069656e7420657863656564732074686560008201527f206d617857616c6c6574416d6f756e7400000000000000000000000000000000602082015250565b60006129e3603083611daa565b91506129ee82612987565b604082019050919050565b60006020820190508181036000830152612a12816129d6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612a75602683611daa565b9150612a8082612a19565b604082019050919050565b60006020820190508181036000830152612aa481612a68565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000612ae1601d83611daa565b9150612aec82612aab565b602082019050919050565b60006020820190508181036000830152612b1081612ad4565b9050919050565b600081905092915050565b50565b6000612b32600083612b17565b9150612b3d82612b22565b600082019050919050565b6000612b5382612b25565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000612bb9603a83611daa565b9150612bc482612b5d565b604082019050919050565b60006020820190508181036000830152612be881612bac565b905091905056fea2646970667358221220659beba5dd402b198134f4575e29b10fb7f459654561bdd6c75e6a6571779e4364736f6c634300081100330000000000000000000000006a426dca5ddf186c80242a6dec495df53a2e103c0000000000000000000000006a426dca5ddf186c80242a6dec495df53a2e103c0000000000000000000000000000000000000000000000000000000000000001