6080604052600160065f6101000a81548160ff021916908315150217905550683635c9adc5dea00000600755670de0b6b3a76400006008555f6009556103e8600f553480156200004d575f80fd5b506040518060400160405280601281526020017f54686520446f676520506f756e64204e465400000000000000000000000000008152506040518060400160405280600681526020017f4f47444f47450000000000000000000000000000000000000000000000000000815250620000da620000ce6200011a60201b60201c565b6200012160201b60201c565b8160049081620000eb919062000931565b508060059081620000fd919062000931565b5050506200011433600754620001e260201b60201c565b62000c70565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000253576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200024a9062000a73565b60405180910390fd5b620002665f83836200035360201b60201c565b8060035f82825462000279919062000ac0565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620002ce919062000ac0565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000334919062000b0b565b60405180910390a36200034f5f83836200065b60201b60201c565b5050565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015620003f25750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b62000434576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200042b9062000b74565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200055557620004996200066060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806200050d5750620004de6200066060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200054f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005469062000be2565b60405180910390fd5b62000656565b60065f9054906101000a900460ff168015620005bd5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15620006555760085481620005d8846200068760201b60201c565b620005e4919062000ac0565b111580156200061257506009548162000603846200068760201b60201c565b6200060f919062000ac0565b10155b62000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b9062000c50565b60405180910390fd5b5b5b505050565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200074957607f821691505b6020821081036200075f576200075e62000704565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620007c37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000786565b620007cf868362000786565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000819620008136200080d84620007e7565b620007f0565b620007e7565b9050919050565b5f819050919050565b6200083483620007f9565b6200084c620008438262000820565b84845462000792565b825550505050565b5f90565b6200086262000854565b6200086f81848462000829565b505050565b5b8181101562000896576200088a5f8262000858565b60018101905062000875565b5050565b601f821115620008e557620008af8162000765565b620008ba8462000777565b81016020851015620008ca578190505b620008e2620008d98562000777565b83018262000874565b50505b505050565b5f82821c905092915050565b5f620009075f1984600802620008ea565b1980831691505092915050565b5f620009218383620008f6565b9150826002028217905092915050565b6200093c82620006cd565b67ffffffffffffffff811115620009585762000957620006d7565b5b62000964825462000731565b620009718282856200089a565b5f60209050601f831160018114620009a7575f841562000992578287015190505b6200099e858262000914565b86555062000a0d565b601f198416620009b78662000765565b5f5b82811015620009e057848901518255600182019150602085019450602081019050620009b9565b8683101562000a005784890151620009fc601f891682620008f6565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000a5b601f8362000a15565b915062000a688262000a25565b602082019050919050565b5f6020820190508181035f83015262000a8c8162000a4d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000acc82620007e7565b915062000ad983620007e7565b925082820190508082111562000af45762000af362000a93565b5b92915050565b62000b0581620007e7565b82525050565b5f60208201905062000b205f83018462000afa565b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f62000b5c600b8362000a15565b915062000b698262000b26565b602082019050919050565b5f6020820190508181035f83015262000b8d8162000b4e565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f62000bca60168362000a15565b915062000bd78262000b94565b602082019050919050565b5f6020820190508181035f83015262000bfb8162000bbc565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f62000c3860068362000a15565b915062000c458262000c02565b602082019050919050565b5f6020820190508181035f83015262000c698162000c2a565b9050919050565b61429e8062000c7e5f395ff3fe608060405234801561000f575f80fd5b50600436106103d9575f3560e01c8063856925ee11610208578063b4377a3e11610123578063dd5ab41a116100b6578063ea0bcae911610085578063ea0bcae914610b71578063eac6abf914610b8d578063f10549f614610ba9578063f2fde38b14610bc5578063f79e787d14610be1576103d9565b8063dd5ab41a14610afd578063dd62ed3e14610b19578063dde415fa14610b49578063e16a878314610b67576103d9565b8063cc9f39f0116100f2578063cc9f39f014610a78578063cd9591ba14610a94578063d5a4260614610ab0578063dd0b281e14610ae1576103d9565b8063b4377a3e146109f4578063b4f243a414610a10578063b83d4fc914610a40578063c88fa40e14610a5c576103d9565b8063a457c2d71161019b578063af504def1161016a578063af504def14610980578063b1d4513a1461099e578063b2321165146109ba578063b42dfa0d146109d6576103d9565b8063a457c2d7146108e8578063a552a36314610918578063a9059cbb14610934578063acca827114610964576103d9565b80638da5cb5b116101d75780638da5cb5b1461085d5780638fdada4a1461087b57806395d89b411461089957806398bafaa3146108b7576103d9565b8063856925ee146107e9578063860a32ec14610805578063873677131461082357806389f9a1d31461083f576103d9565b8063313ce567116102f857806362129c871161028b578063715018a61161025a578063715018a61461077657806373c997f114610780578063750e8d101461079c578063795ed01e146107cd576103d9565b806362129c87146106f25780636707e3bc1461070e5780636a8776621461072a57806370a0823114610746576103d9565b806342966c68116102c757806342966c681461068057806349bd5a5e1461069c5780635a5e0983146106ba5780635d7fa6fc146106d6576103d9565b8063313ce567146105f757806334b0c804146106155780633860a3931461061f5780633950935114610650576103d9565b80630d9ab7ad1161037057806323b872dd1161033f57806323b872dd1461057157806324eae40f146105a157806328d35d5a146105bd5780632d12d34b146105d9576103d9565b80630d9ab7ad146104e957806316c021291461050557806318160ddd146105355780631ab99e1214610553576103d9565b806306fdde03116103ac57806306fdde0314610463578063095ea7b3146104815780630c38ffff146104b15780630c50d184146104cd576103d9565b8063018a3741146103dd578063048b402e146103fb5780630568e65e1461041757806306ea371614610447575b5f80fd5b6103e5610bfd565b6040516103f291906131b0565b60405180910390f35b61041560048036038101906104109190613204565b610c03565b005b610431600480360381019061042c9190613289565b610c89565b60405161043e91906131b0565b60405180910390f35b610461600480360381019061045c9190613204565b610c9e565b005b61046b610d24565b604051610478919061333e565b60405180910390f35b61049b6004803603810190610496919061335e565b610db4565b6040516104a891906133b6565b60405180910390f35b6104cb60048036038101906104c69190613204565b610dd1565b005b6104e760048036038101906104e29190613204565b610e57565b005b61050360048036038101906104fe9190613204565b610edd565b005b61051f600480360381019061051a9190613289565b610f63565b60405161052c91906133b6565b60405180910390f35b61053d610f80565b60405161054a91906131b0565b60405180910390f35b61055b610f89565b60405161056891906131b0565b60405180910390f35b61058b600480360381019061058691906133cf565b610f8f565b60405161059891906133b6565b60405180910390f35b6105bb60048036038101906105b69190613204565b611081565b005b6105d760048036038101906105d29190613204565b611107565b005b6105e1611111565b6040516105ee91906131b0565b60405180910390f35b6105ff611116565b60405161060c919061343a565b60405180910390f35b61061d61111e565b005b61063960048036038101906106349190613453565b6111b5565b604051610647929190613548565b60405180910390f35b61066a6004803603810190610665919061335e565b611337565b60405161067791906133b6565b60405180910390f35b61069a60048036038101906106959190613204565b6113de565b005b6106a46113eb565b6040516106b19190613585565b60405180910390f35b6106d460048036038101906106cf9190613204565b611410565b005b6106f060048036038101906106eb9190613204565b611496565b005b61070c60048036038101906107079190613204565b61151c565b005b61072860048036038101906107239190613204565b6115a2565b005b610744600480360381019061073f9190613204565b611628565b005b610760600480360381019061075b9190613289565b6116ae565b60405161076d91906131b0565b60405180910390f35b61077e6116f4565b005b61079a600480360381019061079591906136ca565b61177b565b005b6107b660048036038101906107b19190613711565b61177e565b6040516107c4929190613864565b60405180910390f35b6107e760048036038101906107e29190613204565b61180b565b005b61080360048036038101906107fe9190613204565b611891565b005b61080d611917565b60405161081a91906133b6565b60405180910390f35b61083d60048036038101906108389190613204565b611929565b005b6108476119af565b60405161085491906131b0565b60405180910390f35b6108656119b5565b6040516108729190613585565b60405180910390f35b6108836119dc565b60405161089091906131b0565b60405180910390f35b6108a16119e2565b6040516108ae919061333e565b60405180910390f35b6108d160048036038101906108cc9190613711565b611a72565b6040516108df929190613864565b60405180910390f35b61090260048036038101906108fd919061335e565b611aff565b60405161090f91906133b6565b60405180910390f35b610932600480360381019061092d9190613204565b611be5565b005b61094e6004803603810190610949919061335e565b611c6b565b60405161095b91906133b6565b60405180910390f35b61097e60048036038101906109799190613204565b611c88565b005b610988611d0e565b60405161099591906131b0565b60405180910390f35b6109b860048036038101906109b39190613204565b611d14565b005b6109d460048036038101906109cf9190613204565b611d9a565b005b6109de611e20565b6040516109eb91906131b0565b60405180910390f35b610a0e6004803603810190610a099190613892565b611e26565b005b610a2a6004803603810190610a25919061335e565b611eb4565b604051610a37919061333e565b60405180910390f35b610a5a6004803603810190610a559190613204565b611ebc565b005b610a766004803603810190610a719190613204565b611f42565b005b610a926004803603810190610a8d9190613204565b611fc8565b005b610aae6004803603810190610aa991906138fa565b61204e565b005b610aca6004803603810190610ac59190613711565b612122565b604051610ad8929190613864565b60405180910390f35b610afb6004803603810190610af69190613289565b612268565b005b610b176004803603810190610b129190613204565b612327565b005b610b336004803603810190610b2e9190613938565b6123ad565b604051610b4091906131b0565b60405180910390f35b610b5161242f565b604051610b5e91906131b0565b60405180910390f35b610b6f612435565b005b610b8b6004803603810190610b869190613204565b6124c8565b005b610ba76004803603810190610ba29190613204565b61254e565b005b610bc36004803603810190610bbe9190613204565b6125d4565b005b610bdf6004803603810190610bda9190613289565b61265a565b005b610bfb6004803603810190610bf69190613204565b612750565b005b600e5481565b610c0b6127d6565b73ffffffffffffffffffffffffffffffffffffffff16610c296119b5565b73ffffffffffffffffffffffffffffffffffffffff1614610c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c76906139c0565b60405180910390fd5b8060278190555050565b6010602052805f5260405f205f915090505481565b610ca66127d6565b73ffffffffffffffffffffffffffffffffffffffff16610cc46119b5565b73ffffffffffffffffffffffffffffffffffffffff1614610d1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d11906139c0565b60405180910390fd5b8060258190555050565b606060048054610d3390613a0b565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5f90613a0b565b8015610daa5780601f10610d8157610100808354040283529160200191610daa565b820191905f5260205f20905b815481529060010190602001808311610d8d57829003601f168201915b5050505050905090565b5f610dc7610dc06127d6565b84846127dd565b6001905092915050565b610dd96127d6565b73ffffffffffffffffffffffffffffffffffffffff16610df76119b5565b73ffffffffffffffffffffffffffffffffffffffff1614610e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e44906139c0565b60405180910390fd5b80601c8190555050565b610e5f6127d6565b73ffffffffffffffffffffffffffffffffffffffff16610e7d6119b5565b73ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca906139c0565b60405180910390fd5b8060248190555050565b610ee56127d6565b73ffffffffffffffffffffffffffffffffffffffff16610f036119b5565b73ffffffffffffffffffffffffffffffffffffffff1614610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f50906139c0565b60405180910390fd5b80601f8190555050565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60095481565b5f610f9b8484846129a0565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610fe26127d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611061576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105890613aab565b60405180910390fd5b6110758561106d6127d6565b8584036127dd565b60019150509392505050565b6110896127d6565b73ffffffffffffffffffffffffffffffffffffffff166110a76119b5565b73ffffffffffffffffffffffffffffffffffffffff16146110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f4906139c0565b60405180910390fd5b8060148190555050565b80602a8190555050565b600181565b5f6012905090565b6111266127d6565b73ffffffffffffffffffffffffffffffffffffffff166111446119b5565b73ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611191906139c0565b60405180910390fd5b5f60065f6101000a81548160ff021916908315150217905550565b5f6060600e548410611214575f8067ffffffffffffffff8111156111dc576111db6135a6565b5b60405190808252806020026020018201604052801561120a5781602001602082028036833780820191505090505b5091509150611330565b5f83856112219190613af6565b9050600e5481111561123357600e5490505b848161123f9190613b29565b92508267ffffffffffffffff81111561125b5761125a6135a6565b5b6040519080825280602002602001820160405280156112895781602001602082028036833780820191505090505b5091505f8590505b8381101561132d57600c5f82886112a89190613af6565b81526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168382815181106112e8576112e7613b5c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050806001019050611291565b50505b9250929050565b5f6113d46113436127d6565b848460025f6113506127d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113cf9190613af6565b6127dd565b6001905092915050565b6113e83382612c18565b50565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114186127d6565b73ffffffffffffffffffffffffffffffffffffffff166114366119b5565b73ffffffffffffffffffffffffffffffffffffffff161461148c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611483906139c0565b60405180910390fd5b8060208190555050565b61149e6127d6565b73ffffffffffffffffffffffffffffffffffffffff166114bc6119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611512576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611509906139c0565b60405180910390fd5b80601b8190555050565b6115246127d6565b73ffffffffffffffffffffffffffffffffffffffff166115426119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611598576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158f906139c0565b60405180910390fd5b8060168190555050565b6115aa6127d6565b73ffffffffffffffffffffffffffffffffffffffff166115c86119b5565b73ffffffffffffffffffffffffffffffffffffffff161461161e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611615906139c0565b60405180910390fd5b8060298190555050565b6116306127d6565b73ffffffffffffffffffffffffffffffffffffffff1661164e6119b5565b73ffffffffffffffffffffffffffffffffffffffff16146116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b906139c0565b60405180910390fd5b8060218190555050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6116fc6127d6565b73ffffffffffffffffffffffffffffffffffffffff1661171a6119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611770576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611767906139c0565b60405180910390fd5b6117795f612de6565b565b50565b5f60605f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f84866117cf9190613af6565b9050818111156117dd578190505b85816117e99190613b29565b93505f5b84811015611800578060010190506117ed565b505050935093915050565b6118136127d6565b73ffffffffffffffffffffffffffffffffffffffff166118316119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e906139c0565b60405180910390fd5b80601a8190555050565b6118996127d6565b73ffffffffffffffffffffffffffffffffffffffff166118b76119b5565b73ffffffffffffffffffffffffffffffffffffffff161461190d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611904906139c0565b60405180910390fd5b8060228190555050565b60065f9054906101000a900460ff1681565b6119316127d6565b73ffffffffffffffffffffffffffffffffffffffff1661194f6119b5565b73ffffffffffffffffffffffffffffffffffffffff16146119a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199c906139c0565b60405180910390fd5b80601d8190555050565b60085481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6103e881565b6060600580546119f190613a0b565b80601f0160208091040260200160405190810160405280929190818152602001828054611a1d90613a0b565b8015611a685780601f10611a3f57610100808354040283529160200191611a68565b820191905f5260205f20905b815481529060010190602001808311611a4b57829003601f168201915b5050505050905090565b5f60605f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8486611ac39190613af6565b905081811115611ad1578190505b8581611add9190613b29565b93505f5b84811015611af457806001019050611ae1565b505050935093915050565b5f8060025f611b0c6127d6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbd90613bf9565b60405180910390fd5b611bda611bd16127d6565b858584036127dd565b600191505092915050565b611bed6127d6565b73ffffffffffffffffffffffffffffffffffffffff16611c0b6119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c58906139c0565b60405180910390fd5b8060178190555050565b5f611c7e611c776127d6565b84846129a0565b6001905092915050565b611c906127d6565b73ffffffffffffffffffffffffffffffffffffffff16611cae6119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611d04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfb906139c0565b60405180910390fd5b8060238190555050565b60115481565b611d1c6127d6565b73ffffffffffffffffffffffffffffffffffffffff16611d3a6119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611d90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d87906139c0565b60405180910390fd5b80601e8190555050565b611da26127d6565b73ffffffffffffffffffffffffffffffffffffffff16611dc06119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611e16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0d906139c0565b60405180910390fd5b8060188190555050565b600f5481565b60105f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548210611ea5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9c90613c61565b60405180910390fd5b611eb0338383612ea7565b5050565b606092915050565b611ec46127d6565b73ffffffffffffffffffffffffffffffffffffffff16611ee26119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f906139c0565b60405180910390fd5b8060198190555050565b611f4a6127d6565b73ffffffffffffffffffffffffffffffffffffffff16611f686119b5565b73ffffffffffffffffffffffffffffffffffffffff1614611fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb5906139c0565b60405180910390fd5b8060158190555050565b611fd06127d6565b73ffffffffffffffffffffffffffffffffffffffff16611fee6119b5565b73ffffffffffffffffffffffffffffffffffffffff1614612044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203b906139c0565b60405180910390fd5b80602c8190555050565b6120566127d6565b73ffffffffffffffffffffffffffffffffffffffff166120746119b5565b73ffffffffffffffffffffffffffffffffffffffff16146120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c1906139c0565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f60605f60105f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508085106121c6575f8067ffffffffffffffff811115612188576121876135a6565b5b6040519080825280602002602001820160405280156121bb57816020015b60608152602001906001900390816121a65790505b509250925050612260565b5f84866121d39190613af6565b9050818111156121ef5781905080866121ec9190613b29565b93505b8367ffffffffffffffff811115612209576122086135a6565b5b60405190808252806020026020018201604052801561223c57816020015b60608152602001906001900390816122275790505b5092505f805f90508791505b8282101561225b57816001019150612248565b505050505b935093915050565b6122706127d6565b73ffffffffffffffffffffffffffffffffffffffff1661228e6119b5565b73ffffffffffffffffffffffffffffffffffffffff16146122e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122db906139c0565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61232f6127d6565b73ffffffffffffffffffffffffffffffffffffffff1661234d6119b5565b73ffffffffffffffffffffffffffffffffffffffff16146123a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239a906139c0565b60405180910390fd5b8060288190555050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6103e881565b61243d6127d6565b73ffffffffffffffffffffffffffffffffffffffff1661245b6119b5565b73ffffffffffffffffffffffffffffffffffffffff16146124b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a8906139c0565b60405180910390fd5b60026008546124c09190613c7f565b600881905550565b6124d06127d6565b73ffffffffffffffffffffffffffffffffffffffff166124ee6119b5565b73ffffffffffffffffffffffffffffffffffffffff1614612544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253b906139c0565b60405180910390fd5b8060268190555050565b6125566127d6565b73ffffffffffffffffffffffffffffffffffffffff166125746119b5565b73ffffffffffffffffffffffffffffffffffffffff16146125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c1906139c0565b60405180910390fd5b80602b8190555050565b6125dc6127d6565b73ffffffffffffffffffffffffffffffffffffffff166125fa6119b5565b73ffffffffffffffffffffffffffffffffffffffff1614612650576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612647906139c0565b60405180910390fd5b8060138190555050565b6126626127d6565b73ffffffffffffffffffffffffffffffffffffffff166126806119b5565b73ffffffffffffffffffffffffffffffffffffffff16146126d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cd906139c0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273b90613d30565b60405180910390fd5b61274d81612de6565b50565b6127586127d6565b73ffffffffffffffffffffffffffffffffffffffff166127766119b5565b73ffffffffffffffffffffffffffffffffffffffff16146127cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127c3906139c0565b60405180910390fd5b8060088190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361284b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161284290613dbe565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036128b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b090613e4c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161299391906131b0565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0590613eda565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7390613f68565b60405180910390fd5b612a87838383612ebf565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0290613ff6565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612b9b9190613af6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612bff91906131b0565b60405180910390a3612c12848484613193565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c7d90614084565b60405180910390fd5b612c91825f83612ebf565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612d15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0c90614112565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f828254612d6a9190613b29565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612dce91906131b0565b60405180910390a3612de1835f84613193565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60405180602001604052805f815250905050505050565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612f5d5750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b612f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f939061417a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036130a757612ff86119b5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061306357506130346119b5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6130a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613099906141e2565b60405180910390fd5b61318e565b60065f9054906101000a900460ff16801561310e5750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561318d5760085481613120846116ae565b61312a9190613af6565b1115801561314d575060095481613140846116ae565b61314a9190613af6565b10155b61318c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131839061424a565b60405180910390fd5b5b5b505050565b505050565b5f819050919050565b6131aa81613198565b82525050565b5f6020820190506131c35f8301846131a1565b92915050565b5f604051905090565b5f80fd5b5f80fd5b6131e381613198565b81146131ed575f80fd5b50565b5f813590506131fe816131da565b92915050565b5f60208284031215613219576132186131d2565b5b5f613226848285016131f0565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6132588261322f565b9050919050565b6132688161324e565b8114613272575f80fd5b50565b5f813590506132838161325f565b92915050565b5f6020828403121561329e5761329d6131d2565b5b5f6132ab84828501613275565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156132eb5780820151818401526020810190506132d0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613310826132b4565b61331a81856132be565b935061332a8185602086016132ce565b613333816132f6565b840191505092915050565b5f6020820190508181035f8301526133568184613306565b905092915050565b5f8060408385031215613374576133736131d2565b5b5f61338185828601613275565b9250506020613392858286016131f0565b9150509250929050565b5f8115159050919050565b6133b08161339c565b82525050565b5f6020820190506133c95f8301846133a7565b92915050565b5f805f606084860312156133e6576133e56131d2565b5b5f6133f386828701613275565b935050602061340486828701613275565b9250506040613415868287016131f0565b9150509250925092565b5f60ff82169050919050565b6134348161341f565b82525050565b5f60208201905061344d5f83018461342b565b92915050565b5f8060408385031215613469576134686131d2565b5b5f613476858286016131f0565b9250506020613487858286016131f0565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6134c38161324e565b82525050565b5f6134d483836134ba565b60208301905092915050565b5f602082019050919050565b5f6134f682613491565b613500818561349b565b935061350b836134ab565b805f5b8381101561353b57815161352288826134c9565b975061352d836134e0565b92505060018101905061350e565b5085935050505092915050565b5f60408201905061355b5f8301856131a1565b818103602083015261356d81846134ec565b90509392505050565b61357f8161324e565b82525050565b5f6020820190506135985f830184613576565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6135dc826132f6565b810181811067ffffffffffffffff821117156135fb576135fa6135a6565b5b80604052505050565b5f61360d6131c9565b905061361982826135d3565b919050565b5f67ffffffffffffffff821115613638576136376135a6565b5b613641826132f6565b9050602081019050919050565b828183375f83830152505050565b5f61366e6136698461361e565b613604565b90508281526020810184848401111561368a576136896135a2565b5b61369584828561364e565b509392505050565b5f82601f8301126136b1576136b061359e565b5b81356136c184826020860161365c565b91505092915050565b5f602082840312156136df576136de6131d2565b5b5f82013567ffffffffffffffff8111156136fc576136fb6131d6565b5b6137088482850161369d565b91505092915050565b5f805f60608486031215613728576137276131d2565b5b5f61373586828701613275565b9350506020613746868287016131f0565b9250506040613757868287016131f0565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f82825260208201905092915050565b5f6137a4826132b4565b6137ae818561378a565b93506137be8185602086016132ce565b6137c7816132f6565b840191505092915050565b5f6137dd838361379a565b905092915050565b5f602082019050919050565b5f6137fb82613761565b613805818561376b565b9350836020820285016138178561377b565b805f5b85811015613852578484038952815161383385826137d2565b945061383e836137e5565b925060208a0199505060018101905061381a565b50829750879550505050505092915050565b5f6040820190506138775f8301856131a1565b818103602083015261388981846137f1565b90509392505050565b5f80604083850312156138a8576138a76131d2565b5b5f6138b5858286016131f0565b92505060206138c685828601613275565b9150509250929050565b6138d98161339c565b81146138e3575f80fd5b50565b5f813590506138f4816138d0565b92915050565b5f80604083850312156139105761390f6131d2565b5b5f61391d85828601613275565b925050602061392e858286016138e6565b9150509250929050565b5f806040838503121561394e5761394d6131d2565b5b5f61395b85828601613275565b925050602061396c85828601613275565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6139aa6020836132be565b91506139b582613976565b602082019050919050565b5f6020820190508181035f8301526139d78161399e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680613a2257607f821691505b602082108103613a3557613a346139de565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613a956028836132be565b9150613aa082613a3b565b604082019050919050565b5f6020820190508181035f830152613ac281613a89565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613b0082613198565b9150613b0b83613198565b9250828201905080821115613b2357613b22613ac9565b5b92915050565b5f613b3382613198565b9150613b3e83613198565b9250828203905081811115613b5657613b55613ac9565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613be36025836132be565b9150613bee82613b89565b604082019050919050565b5f6020820190508181035f830152613c1081613bd7565b9050919050565b7f696e636f727265637420696e64657800000000000000000000000000000000005f82015250565b5f613c4b600f836132be565b9150613c5682613c17565b602082019050919050565b5f6020820190508181035f830152613c7881613c3f565b9050919050565b5f613c8982613198565b9150613c9483613198565b9250828202613ca281613198565b91508282048414831517613cb957613cb8613ac9565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613d1a6026836132be565b9150613d2582613cc0565b604082019050919050565b5f6020820190508181035f830152613d4781613d0e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613da86024836132be565b9150613db382613d4e565b604082019050919050565b5f6020820190508181035f830152613dd581613d9c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e366022836132be565b9150613e4182613ddc565b604082019050919050565b5f6020820190508181035f830152613e6381613e2a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613ec46025836132be565b9150613ecf82613e6a565b604082019050919050565b5f6020820190508181035f830152613ef181613eb8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613f526023836132be565b9150613f5d82613ef8565b604082019050919050565b5f6020820190508181035f830152613f7f81613f46565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613fe06026836132be565b9150613feb82613f86565b604082019050919050565b5f6020820190508181035f83015261400d81613fd4565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61406e6021836132be565b915061407982614014565b604082019050919050565b5f6020820190508181035f83015261409b81614062565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6140fc6022836132be565b9150614107826140a2565b604082019050919050565b5f6020820190508181035f830152614129816140f0565b9050919050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f614164600b836132be565b915061416f82614130565b602082019050919050565b5f6020820190508181035f83015261419181614158565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6141cc6016836132be565b91506141d782614198565b602082019050919050565b5f6020820190508181035f8301526141f9816141c0565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6142346006836132be565b915061423f82614200565b602082019050919050565b5f6020820190508181035f83015261426181614228565b905091905056fea264697066735822122093f963ecd014684ae1fb3d5cb9e30744892e8d7b864c7f3ba653a15639ccf0e064736f6c63430008170033