60e06040523480156200001157600080fd5b506040518060400160405280600781526020017f456c697a614149000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f456c697a610000000000000000000000000000000000000000000000000000008152506200009e62000092620005be60201b60201c565b620005c660201b60201c565b600180819055508160059081620000b6919062000d41565b508060069081620000c8919062000d41565b505050620000f073b84fb5caaa74837b5d767307e84f3252b291f13e620005c660201b60201c565b6200011f620001046200068a60201b60201c565b6d04ee2d6d415b85acef8100000000620006b360201b60201c565b6105dc6007819055506109c46008819055506127106080818152505073b84fb5caaa74837b5d767307e84f3252b291f13e600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620186a0620001a46200082160201b60201c565b620001b0919062000e86565b600a819055506001600b60006101000a81548160ff0219169083151502179055506000620001e36200082b60201b60201c565b90508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000267573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028d919062000f28565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060a05173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031d919062000f28565b6040518363ffffffff1660e01b81526004016200033c92919062000f6b565b6020604051808303816000875af11580156200035c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000382919062000f28565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050620003ea3060a0517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620008ec60201b60201c565b6001600c600060c05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60006200050c6200068a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550506200124c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000725576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200071c9062000ff9565b60405180910390fd5b620007396000838362000abd60201b60201c565b80600460008282546200074d91906200101b565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000801919062001067565b60405180910390a36200081d6000838362000ac260201b60201c565b5050565b6000600454905090565b60006038460362000853577310ed43c718714eb63d5aa57b78b54704e256024e9050620008e9565b60614603620008795773d99d1c33f9fc3444f8101754abc46c52416550d19050620008e9565b6001461480620008895750600546145b15620008ac57737a250d5630b4cf539739df2c5dacb4c659f2488d9050620008e9565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008e090620010fa565b60405180910390fd5b90565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200095e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009559062001192565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620009d0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009c7906200122a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000ab0919062001067565b60405180910390a3505050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b4957607f821691505b60208210810362000b5f5762000b5e62000b01565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bc97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b8a565b62000bd5868362000b8a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c2262000c1c62000c168462000bed565b62000bf7565b62000bed565b9050919050565b6000819050919050565b62000c3e8362000c01565b62000c5662000c4d8262000c29565b84845462000b97565b825550505050565b600090565b62000c6d62000c5e565b62000c7a81848462000c33565b505050565b5b8181101562000ca25762000c9660008262000c63565b60018101905062000c80565b5050565b601f82111562000cf15762000cbb8162000b65565b62000cc68462000b7a565b8101602085101562000cd6578190505b62000cee62000ce58562000b7a565b83018262000c7f565b50505b505050565b600082821c905092915050565b600062000d166000198460080262000cf6565b1980831691505092915050565b600062000d31838362000d03565b9150826002028217905092915050565b62000d4c8262000ac7565b67ffffffffffffffff81111562000d685762000d6762000ad2565b5b62000d74825462000b30565b62000d8182828562000ca6565b600060209050601f83116001811462000db9576000841562000da4578287015190505b62000db0858262000d23565b86555062000e20565b601f19841662000dc98662000b65565b60005b8281101562000df35784890151825560018201915060208501945060208101905062000dcc565b8683101562000e13578489015162000e0f601f89168262000d03565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e938262000bed565b915062000ea08362000bed565b92508262000eb35762000eb262000e28565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ef08262000ec3565b9050919050565b62000f028162000ee3565b811462000f0e57600080fd5b50565b60008151905062000f228162000ef7565b92915050565b60006020828403121562000f415762000f4062000ebe565b5b600062000f518482850162000f11565b91505092915050565b62000f658162000ee3565b82525050565b600060408201905062000f82600083018562000f5a565b62000f91602083018462000f5a565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000fe1601f8362000f98565b915062000fee8262000fa9565b602082019050919050565b60006020820190508181036000830152620010148162000fd2565b9050919050565b6000620010288262000bed565b9150620010358362000bed565b925082820190508082111562001050576200104f62000e57565b5b92915050565b620010618162000bed565b82525050565b60006020820190506200107e600083018462001056565b92915050565b7f43616e6e6f7420666f756e6420726f75746572206f6e2074686973206e65747760008201527f6f726b0000000000000000000000000000000000000000000000000000000000602082015250565b6000620010e260238362000f98565b9150620010ef8262001084565b604082019050919050565b600060208201905081810360008301526200111581620010d3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006200117a60248362000f98565b915062001187826200111c565b604082019050919050565b60006020820190508181036000830152620011ad816200116b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006200121260228362000f98565b91506200121f82620011b4565b604082019050919050565b60006020820190508181036000830152620012458162001203565b9050919050565b60805160a05160c0516141446200129f60003960008181610a2f01526110180152600081816108db01528181611fde01526120d2015260008181610f5a01528181611df50152611e8701526141446000f3fe6080604052600436106101fd5760003560e01c806375f0a8741161010d578063a9059cbb116100a0578063dc1052e21161006f578063dc1052e214610741578063dd62ed3e1461076a578063e2f45605146107a7578063f2fde38b146107d2578063f9d0831a146107fb57610204565b8063a9059cbb14610687578063afa4f3b2146106c4578063d54f7d5e146106ed578063d63cad221461071857610204565b806395d89b41116100dc57806395d89b41146105cb57806396ce0795146105f65780639a7a23d614610621578063a457c2d71461064a57610204565b806375f0a8741461050f5780637949a4031461053a5780638cd09d50146105775780638da5cb5b146105a057610204565b806342d0b0bc116101905780635d098b381161015f5780635d098b381461045057806366eb37851461047957806370a0823114610490578063715018a6146104cd578063721e6233146104e457610204565b806342d0b0bc1461039257806349bd5a5e146103bd5780634fbee193146103e857806352dfc8d01461042557610204565b80631f88a23e116101cc5780631f88a23e146102c457806323b872dd146102ed578063313ce5671461032a578063395093511461035557610204565b806306fdde0314610206578063095ea7b3146102315780631694505e1461026e57806318160ddd1461029957610204565b3661020457005b005b34801561021257600080fd5b5061021b610824565b60405161022891906129be565b60405180910390f35b34801561023d57600080fd5b5061025860048036038101906102539190612a79565b6108b6565b6040516102659190612ad4565b60405180910390f35b34801561027a57600080fd5b506102836108d9565b6040516102909190612b4e565b60405180910390f35b3480156102a557600080fd5b506102ae6108fd565b6040516102bb9190612b78565b60405180910390f35b3480156102d057600080fd5b506102eb60048036038101906102e69190612bbf565b610907565b005b3480156102f957600080fd5b50610314600480360381019061030f9190612bec565b6109b8565b6040516103219190612ad4565b60405180910390f35b34801561033657600080fd5b5061033f6109e7565b60405161034c9190612c5b565b60405180910390f35b34801561036157600080fd5b5061037c60048036038101906103779190612a79565b6109f0565b6040516103899190612ad4565b60405180910390f35b34801561039e57600080fd5b506103a7610a27565b6040516103b49190612b78565b60405180910390f35b3480156103c957600080fd5b506103d2610a2d565b6040516103df9190612c85565b60405180910390f35b3480156103f457600080fd5b5061040f600480360381019061040a9190612ca0565b610a51565b60405161041c9190612ad4565b60405180910390f35b34801561043157600080fd5b5061043a610aa7565b6040516104479190612ad4565b60405180910390f35b34801561045c57600080fd5b5061047760048036038101906104729190612ca0565b610aba565b005b34801561048557600080fd5b5061048e610c91565b005b34801561049c57600080fd5b506104b760048036038101906104b29190612ca0565b610cec565b6040516104c49190612b78565b60405180910390f35b3480156104d957600080fd5b506104e2610d35565b005b3480156104f057600080fd5b506104f9610d49565b6040516105069190612b78565b60405180910390f35b34801561051b57600080fd5b50610524610d4f565b6040516105319190612c85565b60405180910390f35b34801561054657600080fd5b50610561600480360381019061055c9190612ca0565b610d75565b60405161056e9190612ad4565b60405180910390f35b34801561058357600080fd5b5061059e60048036038101906105999190612ccd565b610dcb565b005b3480156105ac57600080fd5b506105b5610e9d565b6040516105c29190612c85565b60405180910390f35b3480156105d757600080fd5b506105e0610ec6565b6040516105ed91906129be565b60405180910390f35b34801561060257600080fd5b5061060b610f58565b6040516106189190612b78565b60405180910390f35b34801561062d57600080fd5b5061064860048036038101906106439190612cfa565b610f7c565b005b34801561065657600080fd5b50610671600480360381019061066c9190612a79565b61114d565b60405161067e9190612ad4565b60405180910390f35b34801561069357600080fd5b506106ae60048036038101906106a99190612a79565b6111c4565b6040516106bb9190612ad4565b60405180910390f35b3480156106d057600080fd5b506106eb60048036038101906106e69190612ccd565b6111e7565b005b3480156106f957600080fd5b506107026112cc565b60405161070f9190612c85565b60405180910390f35b34801561072457600080fd5b5061073f600480360381019061073a9190612cfa565b611384565b005b34801561074d57600080fd5b5061076860048036038101906107639190612ccd565b6114c7565b005b34801561077657600080fd5b50610791600480360381019061078c9190612d3a565b611599565b60405161079e9190612b78565b60405180910390f35b3480156107b357600080fd5b506107bc611620565b6040516107c99190612b78565b60405180910390f35b3480156107de57600080fd5b506107f960048036038101906107f49190612ca0565b611626565b005b34801561080757600080fd5b50610822600480360381019061081d9190612ca0565b6116a9565b005b60606005805461083390612da9565b80601f016020809104026020016040519081016040528092919081815260200182805461085f90612da9565b80156108ac5780601f10610881576101008083540402835291602001916108ac565b820191906000526020600020905b81548152906001019060200180831161088f57829003601f168201915b5050505050905090565b6000806108c1611853565b90506108ce81858561185b565b600191505092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600454905090565b61090f611a24565b801515600b60009054906101000a900460ff16151503610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b90612e26565b60405180910390fd5b80600b60006101000a81548160ff0219169083151502179055507fc2385a9c5843e4cd7e987e979b22e4d4748ec5dbbfc325ee4023a8c1914809b7816040516109ad9190612ad4565b60405180910390a150565b6000806109c3611853565b90506109d0858285611aa2565b6109db858585611b2e565b60019150509392505050565b60006012905090565b6000806109fb611853565b9050610a1c818585610a0d8589611599565b610a179190612e75565b61185b565b600191505092915050565b60085481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b60009054906101000a900460ff1681565b610ac2611a24565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610b52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4990612f1b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb890612fad565b60405180910390fd5b610bca81611f01565b15610c0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c019061303f565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f335aad0eda24dacfa324b3d651daa091864338cf7d4af9d5087ba1c5ee1174f060405160405180910390a250565b6000610c9c30610cec565b905060008111610ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd8906130ab565b60405180910390fd5b610ce9611f24565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d3d611a24565b610d4760006121da565b565b60075481565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610dd3611a24565b8060085403610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e90613117565b60405180910390fd5b6103e8811115610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5390613183565b60405180910390fd5b806008819055507fc9d5952b1f3c1b1a0194027998b195d38e356b5cdcdb07d02335a1bde8f67e7081604051610e929190612b78565b60405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610ed590612da9565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0190612da9565b8015610f4e5780601f10610f2357610100808354040283529160200191610f4e565b820191906000526020600020905b815481529060010190602001808311610f3157829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b610f84611a24565b801515600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90613215565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109b90613281565b60405180910390fd5b80600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fb6f1aed3b1ced30ce666a8b7f2e12b02aed514cdab677738640be9937f133205826040516111419190612ad4565b60405180910390a25050565b600080611158611853565b905060006111668286611599565b9050838110156111ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a290613313565b60405180910390fd5b6111b8828686840361185b565b60019250505092915050565b6000806111cf611853565b90506111dc818585611b2e565b600191505092915050565b6111ef611a24565b80600a5403611233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122a906133a5565b60405180910390fd5b620f424061123f6108fd565b61124991906133f4565b81101561128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290613497565b60405180910390fd5b80600a819055507fe82283d0f679a15d3811ecbaa8b6a8afb1b110e22daa33b359c37bcae5a11e48816040516112c19190612b78565b60405180910390a150565b6000603846036112f2577310ed43c718714eb63d5aa57b78b54704e256024e9050611381565b606146036113165773d99d1c33f9fc3444f8101754abc46c52416550d19050611381565b60014614806113255750600546145b1561134657737a250d5630b4cf539739df2c5dacb4c659f2488d9050611381565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137890613529565b60405180910390fd5b90565b61138c611a24565b801515600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361141e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611415906135bb565b60405180910390fd5b80600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167fee48373bc01f03d5728ce4cf0b4e1c35d75d7da201d5b5d5013a94e50941efe1826040516114bb9190612ad4565b60405180910390a25050565b6114cf611a24565b8060075403611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a90613627565b60405180910390fd5b6103e8811115611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613693565b60405180910390fd5b806007819055507f2d16b529cd6f4d8d1af62fe74e0801442778f50967ec8b5994f628052c59c73a8160405161158e9190612b78565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a5481565b61162e611a24565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169490613725565b60405180910390fd5b6116a6816121da565b50565b6116b1611a24565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361171f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171690613791565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361179f573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611799573d6000803e3d6000fd5b50611850565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117df9190612c85565b602060405180830381865afa1580156117fc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061182091906137c6565b905061184d33828473ffffffffffffffffffffffffffffffffffffffff1661229e9092919063ffffffff16565b50505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c190613865565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611939576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611930906138f7565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a179190612b78565b60405180910390a3505050565b611a2c611853565b73ffffffffffffffffffffffffffffffffffffffff16611a4a610e9d565b73ffffffffffffffffffffffffffffffffffffffff1614611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9790613963565b60405180910390fd5b565b6000611aae8484611599565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611b285781811015611b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b11906139cf565b60405180910390fd5b611b27848484840361185b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9490613a61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0390613af3565b60405180910390fd5b60008103611c2557611c2083836000612324565b611efc565b6000611c3030610cec565b90506000600a548210159050808015611c565750600960149054906101000a900460ff16155b8015611cab5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8015611cc35750600b60009054906101000a900460ff165b15611cd157611cd0611f24565b5b600060019050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611d785750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d8f5750600960149054906101000a900460ff165b15611d9957600090505b8015611eed576000600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e33577f000000000000000000000000000000000000000000000000000000000000000060075486611e229190613b13565b611e2c91906133f4565b9050611ec2565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ec1577f000000000000000000000000000000000000000000000000000000000000000060085486611eb49190613b13565b611ebe91906133f4565b90505b5b60008190506000811115611eea578086611edc9190613b55565b9550611ee9883083612324565b5b50505b611ef8868686612324565b5050505b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6001600960146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f5c57611f5b613b89565b5b604051908082528060200260200182016040528015611f8a5781602001602082028036833780820191505090505b5090503081600081518110611fa257611fa1613bb8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206b9190613bfc565b8160018151811061207f5761207e613bb8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006120c430610cec565b9050600047905060008290507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478260008730426040518663ffffffff1660e01b8152600401612132959493929190613d22565b600060405180830381600087803b15801561214c57600080fd5b505af192505050801561215d575060015b61216a57505050506121bd565b600082476121789190613b55565b9050600081905060008111156121b6576121b4600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168261259d565b505b5050505050505b6000600960146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61231f8363a9059cbb60e01b84846040516024016122bd929190613d7c565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050612637565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a90613a61565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123f990613af3565b60405180910390fd5b61240d8383836126ff565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248b90613e17565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125849190612b78565b60405180910390a3612597848484612704565b50505050565b60006125a7612709565b814710156125b85760009050612629565b60008373ffffffffffffffffffffffffffffffffffffffff16836040516125de90613e68565b60006040518083038185875af1925050503d806000811461261b576040519150601f19603f3d011682016040523d82523d6000602084013e612620565b606091505b50509050809150505b612631612758565b92915050565b6000612699826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166127619092919063ffffffff16565b90506000815114806126bb5750808060200190518101906126ba9190613e92565b5b6126fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126f190613f31565b60405180910390fd5b505050565b505050565b505050565b60026001540361274e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274590613f9d565b60405180910390fd5b6002600181905550565b60018081905550565b60606127708484600085612779565b90509392505050565b6060824710156127be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b59061402f565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516127e7919061408b565b60006040518083038185875af1925050503d8060008114612824576040519150601f19603f3d011682016040523d82523d6000602084013e612829565b606091505b509150915061283a87838387612846565b92505050949350505050565b606083156128a85760008351036128a057612860856128bb565b61289f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612896906140ee565b60405180910390fd5b5b8290506128b3565b6128b283836128de565b5b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000825111156128f15781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292591906129be565b60405180910390fd5b600081519050919050565b600082825260208201905092915050565b60005b8381101561296857808201518184015260208101905061294d565b60008484015250505050565b6000601f19601f8301169050919050565b60006129908261292e565b61299a8185612939565b93506129aa81856020860161294a565b6129b381612974565b840191505092915050565b600060208201905081810360008301526129d88184612985565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a10826129e5565b9050919050565b612a2081612a05565b8114612a2b57600080fd5b50565b600081359050612a3d81612a17565b92915050565b6000819050919050565b612a5681612a43565b8114612a6157600080fd5b50565b600081359050612a7381612a4d565b92915050565b60008060408385031215612a9057612a8f6129e0565b5b6000612a9e85828601612a2e565b9250506020612aaf85828601612a64565b9150509250929050565b60008115159050919050565b612ace81612ab9565b82525050565b6000602082019050612ae96000830184612ac5565b92915050565b6000819050919050565b6000612b14612b0f612b0a846129e5565b612aef565b6129e5565b9050919050565b6000612b2682612af9565b9050919050565b6000612b3882612b1b565b9050919050565b612b4881612b2d565b82525050565b6000602082019050612b636000830184612b3f565b92915050565b612b7281612a43565b82525050565b6000602082019050612b8d6000830184612b69565b92915050565b612b9c81612ab9565b8114612ba757600080fd5b50565b600081359050612bb981612b93565b92915050565b600060208284031215612bd557612bd46129e0565b5b6000612be384828501612baa565b91505092915050565b600080600060608486031215612c0557612c046129e0565b5b6000612c1386828701612a2e565b9350506020612c2486828701612a2e565b9250506040612c3586828701612a64565b9150509250925092565b600060ff82169050919050565b612c5581612c3f565b82525050565b6000602082019050612c706000830184612c4c565b92915050565b612c7f81612a05565b82525050565b6000602082019050612c9a6000830184612c76565b92915050565b600060208284031215612cb657612cb56129e0565b5b6000612cc484828501612a2e565b91505092915050565b600060208284031215612ce357612ce26129e0565b5b6000612cf184828501612a64565b91505092915050565b60008060408385031215612d1157612d106129e0565b5b6000612d1f85828601612a2e565b9250506020612d3085828601612baa565b9150509250929050565b60008060408385031215612d5157612d506129e0565b5b6000612d5f85828601612a2e565b9250506020612d7085828601612a2e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612dc157607f821691505b602082108103612dd457612dd3612d7a565b5b50919050565b7f537761704261636b20616c7265616479206f6e20737461747573000000000000600082015250565b6000612e10601a83612939565b9150612e1b82612dda565b602082019050919050565b60006020820190508181036000830152612e3f81612e03565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e8082612a43565b9150612e8b83612a43565b9250828201905080821115612ea357612ea2612e46565b5b92915050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000612f05602883612939565b9150612f1082612ea9565b604082019050919050565b60006020820190508181036000830152612f3481612ef8565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b6000612f97602b83612939565b9150612fa282612f3b565b604082019050919050565b60006020820190508181036000830152612fc681612f8a565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f74206265206120636f6e60008201527f7472616374000000000000000000000000000000000000000000000000000000602082015250565b6000613029602583612939565b915061303482612fcd565b604082019050919050565b600060208201905081810360008301526130588161301c565b9050919050565b7f43616e742053776170204261636b203020546f6b656e21000000000000000000600082015250565b6000613095601783612939565b91506130a08261305f565b602082019050919050565b600060208201905081810360008301526130c481613088565b9050919050565b7f53656c6c2054617820616c7265616479206f6e207468617420616d6f756e7400600082015250565b6000613101601f83612939565b915061310c826130cb565b602082019050919050565b60006020820190508181036000830152613130816130f4565b9050919050565b7f53656c6c205461782063616e6e6f74206265206d6f7265207468616e20313025600082015250565b600061316d602083612939565b915061317882613137565b602082019050919050565b6000602082019050818103600083015261319c81613160565b9050919050565b7f50616972206164647265737320697320616c7265616479207468652076616c7560008201527f65206f6620277374617475732700000000000000000000000000000000000000602082015250565b60006131ff602d83612939565b915061320a826131a3565b604082019050919050565b6000602082019050818103600083015261322e816131f2565b9050919050565b7f43616e6e6f742073657420746869732070616972000000000000000000000000600082015250565b600061326b601483612939565b915061327682613235565b602082019050919050565b6000602082019050818103600083015261329a8161325e565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006132fd602583612939565b9150613308826132a1565b604082019050919050565b6000602082019050818103600083015261332c816132f0565b9050919050565b7f53776170546f6b656e734174416d6f756e7420616c7265616479206f6e20746860008201527f617420616d6f756e740000000000000000000000000000000000000000000000602082015250565b600061338f602983612939565b915061339a82613333565b604082019050919050565b600060208201905081810360008301526133be81613382565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006133ff82612a43565b915061340a83612a43565b92508261341a576134196133c5565b5b828204905092915050565b7f416d6f756e74206d75737420626520657175616c206f7220677265617465722060008201527f7468616e20302e30303030303125206f6620546f74616c20537570706c790000602082015250565b6000613481603e83612939565b915061348c82613425565b604082019050919050565b600060208201905081810360008301526134b081613474565b9050919050565b7f43616e6e6f7420666f756e6420726f75746572206f6e2074686973206e65747760008201527f6f726b0000000000000000000000000000000000000000000000000000000000602082015250565b6000613513602383612939565b915061351e826134b7565b604082019050919050565b6000602082019050818103600083015261354281613506565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b60006135a5602a83612939565b91506135b082613549565b604082019050919050565b600060208201905081810360008301526135d481613598565b9050919050565b7f4275792054617820616c7265616479206f6e207468617420616d6f756e740000600082015250565b6000613611601e83612939565b915061361c826135db565b602082019050919050565b6000602082019050818103600083015261364081613604565b9050919050565b7f427579205461782063616e6e6f74206265206d6f7265207468616e2031302500600082015250565b600061367d601f83612939565b915061368882613647565b602082019050919050565b600060208201905081810360008301526136ac81613670565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061370f602683612939565b915061371a826136b3565b604082019050919050565b6000602082019050818103600083015261373e81613702565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d206e617469766520746f6b656e73600082015250565b600061377b602083612939565b915061378682613745565b602082019050919050565b600060208201905081810360008301526137aa8161376e565b9050919050565b6000815190506137c081612a4d565b92915050565b6000602082840312156137dc576137db6129e0565b5b60006137ea848285016137b1565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061384f602483612939565b915061385a826137f3565b604082019050919050565b6000602082019050818103600083015261387e81613842565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138e1602283612939565b91506138ec82613885565b604082019050919050565b60006020820190508181036000830152613910816138d4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061394d602083612939565b915061395882613917565b602082019050919050565b6000602082019050818103600083015261397c81613940565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b60006139b9601d83612939565b91506139c482613983565b602082019050919050565b600060208201905081810360008301526139e8816139ac565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a4b602583612939565b9150613a56826139ef565b604082019050919050565b60006020820190508181036000830152613a7a81613a3e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613add602383612939565b9150613ae882613a81565b604082019050919050565b60006020820190508181036000830152613b0c81613ad0565b9050919050565b6000613b1e82612a43565b9150613b2983612a43565b9250828202613b3781612a43565b91508282048414831517613b4e57613b4d612e46565b5b5092915050565b6000613b6082612a43565b9150613b6b83612a43565b9250828203905081811115613b8357613b82612e46565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613bf681612a17565b92915050565b600060208284031215613c1257613c116129e0565b5b6000613c2084828501613be7565b91505092915050565b6000819050919050565b6000613c4e613c49613c4484613c29565b612aef565b612a43565b9050919050565b613c5e81613c33565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c9981612a05565b82525050565b6000613cab8383613c90565b60208301905092915050565b6000602082019050919050565b6000613ccf82613c64565b613cd98185613c6f565b9350613ce483613c80565b8060005b83811015613d15578151613cfc8882613c9f565b9750613d0783613cb7565b925050600181019050613ce8565b5085935050505092915050565b600060a082019050613d376000830188612b69565b613d446020830187613c55565b8181036040830152613d568186613cc4565b9050613d656060830185612c76565b613d726080830184612b69565b9695505050505050565b6000604082019050613d916000830185612c76565b613d9e6020830184612b69565b9392505050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613e01602683612939565b9150613e0c82613da5565b604082019050919050565b60006020820190508181036000830152613e3081613df4565b9050919050565b600081905092915050565b50565b6000613e52600083613e37565b9150613e5d82613e42565b600082019050919050565b6000613e7382613e45565b9150819050919050565b600081519050613e8c81612b93565b92915050565b600060208284031215613ea857613ea76129e0565b5b6000613eb684828501613e7d565b91505092915050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b6000613f1b602a83612939565b9150613f2682613ebf565b604082019050919050565b60006020820190508181036000830152613f4a81613f0e565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000613f87601f83612939565b9150613f9282613f51565b602082019050919050565b60006020820190508181036000830152613fb681613f7a565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000614019602683612939565b915061402482613fbd565b604082019050919050565b600060208201905081810360008301526140488161400c565b9050919050565b600081519050919050565b60006140658261404f565b61406f8185613e37565b935061407f81856020860161294a565b80840191505092915050565b6000614097828461405a565b915081905092915050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006140d8601d83612939565b91506140e3826140a2565b602082019050919050565b60006020820190508181036000830152614107816140cb565b905091905056fea2646970667358221220de41ebddc63c1b15a22cff6e23a2d00eae38d95e1564984b79b1b5448dd0411564736f6c63430008130033