6080604052662386f26fc10000600d5534801561001a575f80fd5b5060405161353c38038061353c833981810160405281019061003c9190610271565b806040518060400160405280600781526020017f54656e73696f6e000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f54534e0000000000000000000000000000000000000000000000000000000000815250815f90816100b791906104d6565b5080600190816100c791906104d6565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361013a575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161013191906105b4565b60405180910390fd5b6101498161015060201b60201c565b50506105cd565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61024082610217565b9050919050565b61025081610236565b811461025a575f80fd5b50565b5f8151905061026b81610247565b92915050565b5f6020828403121561028657610285610213565b5b5f6102938482850161025d565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061031757607f821691505b60208210810361032a576103296102d3565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261038c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610351565b6103968683610351565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6103da6103d56103d0846103ae565b6103b7565b6103ae565b9050919050565b5f819050919050565b6103f3836103c0565b6104076103ff826103e1565b84845461035d565b825550505050565b5f90565b61041b61040f565b6104268184846103ea565b505050565b5b818110156104495761043e5f82610413565b60018101905061042c565b5050565b601f82111561048e5761045f81610330565b61046884610342565b81016020851015610477578190505b61048b61048385610342565b83018261042b565b50505b505050565b5f82821c905092915050565b5f6104ae5f1984600802610493565b1980831691505092915050565b5f6104c6838361049f565b9150826002028217905092915050565b6104df8261029c565b67ffffffffffffffff8111156104f8576104f76102a6565b5b6105028254610300565b61050d82828561044d565b5f60209050601f83116001811461053e575f841561052c578287015190505b61053685826104bb565b86555061059d565b601f19841661054c86610330565b5f5b828110156105735784890151825560018201915060208501945060208101905061054e565b86831015610590578489015161058c601f89168261049f565b8355505b6001600288020188555050505b505050505050565b6105ae81610236565b82525050565b5f6020820190506105c75f8301846105a5565b92915050565b612f62806105da5f395ff3fe60806040526004361061014a575f3560e01c8063715018a6116100b5578063c87b56dd1161006e578063c87b56dd1461048e578063d204c45e146104ca578063e985e9c5146104e6578063f2fde38b14610522578063f4a0a5281461054a578063ff11e1db146105725761014a565b8063715018a6146103aa5780638da5cb5b146103c057806395d89b41146103ea578063a035b1fe14610414578063a22cb4651461043e578063b88d4fde146104665761014a565b80632f745c59116101075780632f745c591461026a57806342842e0e146102a657806342966c68146102ce5780634f6ccce7146102f65780636352211e1461033257806370a082311461036e5761014a565b806301ffc9a71461014e57806306fdde031461018a578063081812fc146101b4578063095ea7b3146101f057806318160ddd1461021857806323b872dd14610242575b5f80fd5b348015610159575f80fd5b50610174600480360381019061016f9190612340565b610588565b6040516101819190612385565b60405180910390f35b348015610195575f80fd5b5061019e610599565b6040516101ab919061240e565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d59190612461565b610628565b6040516101e791906124cb565b60405180910390f35b3480156101fb575f80fd5b506102166004803603810190610211919061250e565b610643565b005b348015610223575f80fd5b5061022c610659565b604051610239919061255b565b60405180910390f35b34801561024d575f80fd5b5061026860048036038101906102639190612574565b610665565b005b348015610275575f80fd5b50610290600480360381019061028b919061250e565b610764565b60405161029d919061255b565b60405180910390f35b3480156102b1575f80fd5b506102cc60048036038101906102c79190612574565b610808565b005b3480156102d9575f80fd5b506102f460048036038101906102ef9190612461565b610827565b005b348015610301575f80fd5b5061031c60048036038101906103179190612461565b61083d565b604051610329919061255b565b60405180910390f35b34801561033d575f80fd5b5061035860048036038101906103539190612461565b6108af565b60405161036591906124cb565b60405180910390f35b348015610379575f80fd5b50610394600480360381019061038f91906125c4565b6108c0565b6040516103a1919061255b565b60405180910390f35b3480156103b5575f80fd5b506103be610976565b005b3480156103cb575f80fd5b506103d4610989565b6040516103e191906124cb565b60405180910390f35b3480156103f5575f80fd5b506103fe6109b1565b60405161040b919061240e565b60405180910390f35b34801561041f575f80fd5b50610428610a41565b604051610435919061255b565b60405180910390f35b348015610449575f80fd5b50610464600480360381019061045f9190612619565b610a47565b005b348015610471575f80fd5b5061048c60048036038101906104879190612783565b610a5d565b005b348015610499575f80fd5b506104b460048036038101906104af9190612461565b610a7a565b6040516104c1919061240e565b60405180910390f35b6104e460048036038101906104df91906128a1565b610a8c565b005b3480156104f1575f80fd5b5061050c600480360381019061050791906128fb565b610b4e565b6040516105199190612385565b60405180910390f35b34801561052d575f80fd5b50610548600480360381019061054391906125c4565b610bdc565b005b348015610555575f80fd5b50610570600480360381019061056b9190612461565b610c60565b005b34801561057d575f80fd5b50610586610c72565b005b5f61059282610ccc565b9050919050565b60605f80546105a790612966565b80601f01602080910402602001604051908101604052809291908181526020018280546105d390612966565b801561061e5780601f106105f55761010080835404028352916020019161061e565b820191905f5260205f20905b81548152906001019060200180831161060157829003601f168201915b5050505050905090565b5f61063282610d2c565b5061063c82610db2565b9050919050565b6106558282610650610deb565b610df2565b5050565b5f600880549050905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106d5575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106cc91906124cb565b60405180910390fd5b5f6106e883836106e3610deb565b610e04565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461075e578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161075593929190612996565b60405180910390fd5b50505050565b5f61076e836108c0565b82106107b35782826040517fa57d13dc0000000000000000000000000000000000000000000000000000000081526004016107aa9291906129cb565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b61082283838360405180602001604052805f815250610a5d565b505050565b6108395f82610834610deb565b610e04565b5050565b5f610846610659565b821061088b575f826040517fa57d13dc0000000000000000000000000000000000000000000000000000000081526004016108829291906129cb565b60405180910390fd5b6008828154811061089f5761089e6129f2565b5b905f5260205f2001549050919050565b5f6108b982610d2c565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610931575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161092891906124cb565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61097e610e19565b6109875f610ea0565b565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546109c090612966565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec90612966565b8015610a375780601f10610a0e57610100808354040283529160200191610a37565b820191905f5260205f20905b815481529060010190602001808311610a1a57829003601f168201915b5050505050905090565b600d5481565b610a59610a52610deb565b8383610f63565b5050565b610a68848484610665565b610a74848484846110cc565b50505050565b6060610a858261127e565b9050919050565b610a94610e19565b600d543414610ad8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610acf90612a69565b60405180910390fd5b5f600c5f815480929190610aeb90612ab4565b919050559050610afb8382611389565b610b0581836113a6565b808373ffffffffffffffffffffffffffffffffffffffff167fb9144c96c86541f6fa89c9f2f02495cccf4b08cd6643e26d34ee00aa586558a860405160405180910390a3505050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610be4610e19565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c54575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610c4b91906124cb565b60405180910390fd5b610c5d81610ea0565b50565b610c68610e19565b80600d8190555050565b610c7a610e19565b5f610c83610989565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610cc8573d5f803e3d5ffd5b5050565b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d255750610d2482611400565b5b9050919050565b5f80610d3783611479565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610da957826040517f7e273289000000000000000000000000000000000000000000000000000000008152600401610da0919061255b565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b610dff83838360016114b2565b505050565b5f610e10848484611671565b90509392505050565b610e21610deb565b73ffffffffffffffffffffffffffffffffffffffff16610e3f610989565b73ffffffffffffffffffffffffffffffffffffffff1614610e9e57610e62610deb565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610e9591906124cb565b60405180910390fd5b565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fd357816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401610fca91906124cb565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110bf9190612385565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611278578273ffffffffffffffffffffffffffffffffffffffff1663150b7a0261110f610deb565b8685856040518563ffffffff1660e01b81526004016111319493929190612b4d565b6020604051808303815f875af192505050801561116c57506040513d601f19601f820116820180604052508101906111699190612bab565b60015b6111ed573d805f811461119a576040519150601f19603f3d011682016040523d82523d5f602084013e61119f565b606091505b505f8151036111e557836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016111dc91906124cb565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461127657836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161126d91906124cb565b60405180910390fd5b505b50505050565b606061128982610d2c565b505f600a5f8481526020019081526020015f2080546112a790612966565b80601f01602080910402602001604051908101604052809291908181526020018280546112d390612966565b801561131e5780601f106112f55761010080835404028352916020019161131e565b820191905f5260205f20905b81548152906001019060200180831161130157829003601f168201915b505050505090505f61132e61178b565b90505f815103611342578192505050611384565b5f8251111561137657808260405160200161135e929190612c10565b60405160208183030381529060405292505050611384565b61137f846117a1565b925050505b919050565b6113a2828260405180602001604052805f815250611807565b5050565b80600a5f8481526020019081526020015f2090816113c49190612dd0565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516113f4919061255b565b60405180910390a15050565b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611472575061147182611822565b5b9050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806114ea57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561161c575f6114f984610d2c565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561156357508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561157657506115748184610b4e565b155b156115b857826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016115af91906124cb565b60405180910390fd5b811561161a57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5f8061167e858585611903565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116c1576116bc84611b0e565b611700565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116ff576116fe8185611b52565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036117415761173c84611c9c565b611780565b8473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461177f5761177e8585611d5c565b5b5b809150509392505050565b606060405180602001604052805f815250905090565b60606117ac82610d2c565b505f6117b661178b565b90505f8151116117d45760405180602001604052805f8152506117ff565b806117de84611de0565b6040516020016117ef929190612c10565b6040516020818303038152906040525b915050919050565b6118118383611eaa565b61181d5f8484846110cc565b505050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806118ec57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806118fc57506118fb82611f9d565b5b9050919050565b5f8061190e84611479565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461194f5761194e818486612006565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146119da5761198e5f855f806114b2565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611a5957600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f611b5c836108c0565b90505f60075f8481526020019081526020015f20549050818114611c33575f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205490508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055508160075f8381526020019081526020015f2081905550505b60075f8481526020019081526020015f205f905560065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f905550505050565b5f6001600880549050611caf9190612e9f565b90505f60095f8481526020019081526020015f205490505f60088381548110611cdb57611cda6129f2565b5b905f5260205f20015490508060088381548110611cfb57611cfa6129f2565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f90556008805480611d4357611d42612ed2565b5b600190038181905f5260205f20015f9055905550505050565b5f6001611d68846108c0565b611d729190612e9f565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b60605f6001611dee846120c9565b0190505f8167ffffffffffffffff811115611e0c57611e0b61265f565b5b6040519080825280601f01601f191660200182016040528015611e3e5781602001600182028036833780820191505090505b5090505f82602001820190505b600115611e9f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611e9457611e93612eff565b5b0494505f8503611e4b575b819350505050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f1a575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611f1191906124cb565b60405180910390fd5b5f611f2683835f610e04565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611f98575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611f8f91906124cb565b60405180910390fd5b505050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61201183838361221a565b6120c4575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361208557806040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161207c919061255b565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016120bb9291906129cb565b60405180910390fd5b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612125577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161211b5761211a612eff565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612162576d04ee2d6d415b85acef8100000000838161215857612157612eff565b5b0492506020810190505b662386f26fc10000831061219157662386f26fc10000838161218757612186612eff565b5b0492506010810190505b6305f5e10083106121ba576305f5e10083816121b0576121af612eff565b5b0492506008810190505b61271083106121df5761271083816121d5576121d4612eff565b5b0492506004810190505b6064831061220257606483816121f8576121f7612eff565b5b0492506002810190505b600a8310612211576001810190505b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122d157508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061229257506122918484610b4e565b5b806122d057508273ffffffffffffffffffffffffffffffffffffffff166122b883610db2565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61231f816122eb565b8114612329575f80fd5b50565b5f8135905061233a81612316565b92915050565b5f60208284031215612355576123546122e3565b5b5f6123628482850161232c565b91505092915050565b5f8115159050919050565b61237f8161236b565b82525050565b5f6020820190506123985f830184612376565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6123e08261239e565b6123ea81856123a8565b93506123fa8185602086016123b8565b612403816123c6565b840191505092915050565b5f6020820190508181035f83015261242681846123d6565b905092915050565b5f819050919050565b6124408161242e565b811461244a575f80fd5b50565b5f8135905061245b81612437565b92915050565b5f60208284031215612476576124756122e3565b5b5f6124838482850161244d565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124b58261248c565b9050919050565b6124c5816124ab565b82525050565b5f6020820190506124de5f8301846124bc565b92915050565b6124ed816124ab565b81146124f7575f80fd5b50565b5f81359050612508816124e4565b92915050565b5f8060408385031215612524576125236122e3565b5b5f612531858286016124fa565b92505060206125428582860161244d565b9150509250929050565b6125558161242e565b82525050565b5f60208201905061256e5f83018461254c565b92915050565b5f805f6060848603121561258b5761258a6122e3565b5b5f612598868287016124fa565b93505060206125a9868287016124fa565b92505060406125ba8682870161244d565b9150509250925092565b5f602082840312156125d9576125d86122e3565b5b5f6125e6848285016124fa565b91505092915050565b6125f88161236b565b8114612602575f80fd5b50565b5f81359050612613816125ef565b92915050565b5f806040838503121561262f5761262e6122e3565b5b5f61263c858286016124fa565b925050602061264d85828601612605565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612695826123c6565b810181811067ffffffffffffffff821117156126b4576126b361265f565b5b80604052505050565b5f6126c66122da565b90506126d2828261268c565b919050565b5f67ffffffffffffffff8211156126f1576126f061265f565b5b6126fa826123c6565b9050602081019050919050565b828183375f83830152505050565b5f612727612722846126d7565b6126bd565b9050828152602081018484840111156127435761274261265b565b5b61274e848285612707565b509392505050565b5f82601f83011261276a57612769612657565b5b813561277a848260208601612715565b91505092915050565b5f805f806080858703121561279b5761279a6122e3565b5b5f6127a8878288016124fa565b94505060206127b9878288016124fa565b93505060406127ca8782880161244d565b925050606085013567ffffffffffffffff8111156127eb576127ea6122e7565b5b6127f787828801612756565b91505092959194509250565b5f67ffffffffffffffff82111561281d5761281c61265f565b5b612826826123c6565b9050602081019050919050565b5f61284561284084612803565b6126bd565b9050828152602081018484840111156128615761286061265b565b5b61286c848285612707565b509392505050565b5f82601f83011261288857612887612657565b5b8135612898848260208601612833565b91505092915050565b5f80604083850312156128b7576128b66122e3565b5b5f6128c4858286016124fa565b925050602083013567ffffffffffffffff8111156128e5576128e46122e7565b5b6128f185828601612874565b9150509250929050565b5f8060408385031215612911576129106122e3565b5b5f61291e858286016124fa565b925050602061292f858286016124fa565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061297d57607f821691505b6020821081036129905761298f612939565b5b50919050565b5f6060820190506129a95f8301866124bc565b6129b6602083018561254c565b6129c360408301846124bc565b949350505050565b5f6040820190506129de5f8301856124bc565b6129eb602083018461254c565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f496e636f727265637420457468657220616d6f756e742073656e7400000000005f82015250565b5f612a53601b836123a8565b9150612a5e82612a1f565b602082019050919050565b5f6020820190508181035f830152612a8081612a47565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612abe8261242e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612af057612aef612a87565b5b600182019050919050565b5f81519050919050565b5f82825260208201905092915050565b5f612b1f82612afb565b612b298185612b05565b9350612b398185602086016123b8565b612b42816123c6565b840191505092915050565b5f608082019050612b605f8301876124bc565b612b6d60208301866124bc565b612b7a604083018561254c565b8181036060830152612b8c8184612b15565b905095945050505050565b5f81519050612ba581612316565b92915050565b5f60208284031215612bc057612bbf6122e3565b5b5f612bcd84828501612b97565b91505092915050565b5f81905092915050565b5f612bea8261239e565b612bf48185612bd6565b9350612c048185602086016123b8565b80840191505092915050565b5f612c1b8285612be0565b9150612c278284612be0565b91508190509392505050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612c8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c54565b612c998683612c54565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612cd4612ccf612cca8461242e565b612cb1565b61242e565b9050919050565b5f819050919050565b612ced83612cba565b612d01612cf982612cdb565b848454612c60565b825550505050565b5f90565b612d15612d09565b612d20818484612ce4565b505050565b5b81811015612d4357612d385f82612d0d565b600181019050612d26565b5050565b601f821115612d8857612d5981612c33565b612d6284612c45565b81016020851015612d71578190505b612d85612d7d85612c45565b830182612d25565b50505b505050565b5f82821c905092915050565b5f612da85f1984600802612d8d565b1980831691505092915050565b5f612dc08383612d99565b9150826002028217905092915050565b612dd98261239e565b67ffffffffffffffff811115612df257612df161265f565b5b612dfc8254612966565b612e07828285612d47565b5f60209050601f831160018114612e38575f8415612e26578287015190505b612e308582612db5565b865550612e97565b601f198416612e4686612c33565b5f5b82811015612e6d57848901518255600182019150602085019450602081019050612e48565b86831015612e8a5784890151612e86601f891682612d99565b8355505b6001600288020188555050505b505050505050565b5f612ea98261242e565b9150612eb48361242e565b9250828203905081811115612ecc57612ecb612a87565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffdfea2646970667358221220b2e3f44195063212ac6734f4d8c86bf73f9afa953bc23970f03e46d3d4a46e4564736f6c63430008190033000000000000000000000000ca28eaa4fff145c26074f3ea08b657b288401e33