60a06040523073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152505f600355348015610046575f80fd5b5061005561005a60201b60201c565b6101ba565b5f61006961015860201b60201c565b9050805f0160089054906101000a900460ff16156100b3576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff8016815f015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff16146101555767ffffffffffffffff815f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d267ffffffffffffffff60405161014c91906101a1565b60405180910390a15b50565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b5f67ffffffffffffffff82169050919050565b61019b8161017f565b82525050565b5f6020820190506101b45f830184610192565b92915050565b60805161376f6101e05f395f8181611acd01528181611b220152611cdc015261376f5ff3fe6080604052600436106101c1575f3560e01c806378e97925116100f6578063a694fc3a11610094578063dd62ed3e11610063578063dd62ed3e146105c2578063e6a69ab8146105fe578063ef8bd30514610628578063f2fde38b14610652576101c1565b8063a694fc3a1461050a578063a9059cbb14610532578063ad3cb1cc1461056e578063d5abeb0114610598576101c1565b80639168ae72116100d05780639168ae721461046357806395d89b41146104a2578063a0712d68146104cc578063a63f7c53146104f4576101c1565b806378e97925146103f95780638129fc1c146104235780638da5cb5b14610439576101c1565b806333f707d11161016357806352d1902d1161013d57806352d1902d1461035357806370a082311461037d578063715018a6146103b957806377b330c9146103cf576101c1565b806333f707d1146102f9578063372500ab146103215780634f1ef28614610337576101c1565b806318160ddd1161019f57806318160ddd1461024157806323b872dd1461026b5780632e17de78146102a7578063313ce567146102cf576101c1565b8063039364e8146101c557806306fdde03146101db578063095ea7b314610205575b5f80fd5b3480156101d0575f80fd5b506101d961067a565b005b3480156101e6575f80fd5b506101ef61068b565b6040516101fc9190612830565b60405180910390f35b348015610210575f80fd5b5061022b600480360381019061022691906128ee565b610729565b6040516102389190612946565b60405180910390f35b34801561024c575f80fd5b5061025561074b565b604051610262919061296e565b60405180910390f35b348015610276575f80fd5b50610291600480360381019061028c9190612987565b610762565b60405161029e9190612946565b60405180910390f35b3480156102b2575f80fd5b506102cd60048036038101906102c891906129d7565b610790565b005b3480156102da575f80fd5b506102e3610991565b6040516102f09190612a1d565b60405180910390f35b348015610304575f80fd5b5061031f600480360381019061031a91906129d7565b610999565b005b34801561032c575f80fd5b50610335610b18565b005b610351600480360381019061034c9190612b62565b610ca8565b005b34801561035e575f80fd5b50610367610cc7565b6040516103749190612bd4565b60405180910390f35b348015610388575f80fd5b506103a3600480360381019061039e9190612bed565b610cf8565b6040516103b0919061296e565b60405180910390f35b3480156103c4575f80fd5b506103cd610d4b565b005b3480156103da575f80fd5b506103e3610d86565b6040516103f09190612c73565b60405180910390f35b348015610404575f80fd5b5061040d610da9565b60405161041a919061296e565b60405180910390f35b34801561042e575f80fd5b50610437610daf565b005b348015610444575f80fd5b5061044d611025565b60405161045a9190612c9b565b60405180910390f35b34801561046e575f80fd5b5061048960048036038101906104849190612bed565b61105a565b6040516104999493929190612cb4565b60405180910390f35b3480156104ad575f80fd5b506104b6611086565b6040516104c39190612830565b60405180910390f35b3480156104d7575f80fd5b506104f260048036038101906104ed91906129d7565b611124565b005b3480156104ff575f80fd5b50610508611407565b005b348015610515575f80fd5b50610530600480360381019061052b91906129d7565b611418565b005b34801561053d575f80fd5b50610558600480360381019061055391906128ee565b6115f2565b6040516105659190612946565b60405180910390f35b348015610579575f80fd5b50610582611614565b60405161058f9190612830565b60405180910390f35b3480156105a3575f80fd5b506105ac61164d565b6040516105b9919061296e565b60405180910390f35b3480156105cd575f80fd5b506105e860048036038101906105e39190612cf7565b611653565b6040516105f5919061296e565b60405180910390f35b348015610609575f80fd5b506106126116e3565b60405161061f919061296e565b60405180910390f35b348015610633575f80fd5b5061063c6116eb565b604051610649919061296e565b60405180910390f35b34801561065d575f80fd5b5061067860048036038101906106739190612bed565b6116f0565b005b610682611774565b5f600381905550565b60605f6106966117fb565b90508060030180546106a790612d62565b80601f01602080910402602001604051908101604052809291908181526020018280546106d390612d62565b801561071e5780601f106106f55761010080835404028352916020019161071e565b820191905f5260205f20905b81548152906001019060200180831161070157829003601f168201915b505050505091505090565b5f80610733611822565b9050610740818585611829565b600191505092915050565b5f806107556117fb565b9050806002015491505090565b5f8061076c611822565b905061077985828561183b565b6107848585856118cd565b60019150509392505050565b5f81116107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c990612ddc565b60405180910390fd5b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015411610853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084a90612e44565b60405180910390fd5b8060025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015410156108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc90612eac565b60405180910390fd5b8060025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f8282546109239190612ef7565b925050819055506109353033836118cd565b61093e336119bd565b3373ffffffffffffffffffffffffffffffffffffffff167ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb2808242604051610986929190612f2a565b60405180910390a250565b5f6012905090565b6109a1611774565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109f99190612c9b565b602060405180830381865afa158015610a14573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a389190612f65565b811115610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7190613026565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610ad4929190613044565b6020604051808303815f875af1158015610af0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b149190613095565b5050565b610b21336119bd565b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015490505f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600201819055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610c04929190613044565b6020604051808303815f875af1158015610c20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c449190613095565b503373ffffffffffffffffffffffffffffffffffffffff167f674a8930d4166ce2352c3dc1e9ff633595db479f71f3741270a0a73a52cb7b0f64e8d4a5100083610c8e91906130c0565b42604051610c9d929190612f2a565b60405180910390a250565b610cb0611acb565b610cb982611bb1565b610cc38282611bbc565b5050565b5f610cd0611cda565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b905090565b5f80610d026117fb565b9050805f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054915050919050565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7d9061314b565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035481565b5f610db8611d61565b90505f815f0160089054906101000a900460ff161590505f825f015f9054906101000a900467ffffffffffffffff1690505f808267ffffffffffffffff16148015610e005750825b90505f60018367ffffffffffffffff16148015610e3357505f3073ffffffffffffffffffffffffffffffffffffffff163b145b905081158015610e41575080155b15610e78576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001855f015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508315610ec5576001855f0160086101000a81548160ff0219169083151502179055505b610f396040518060400160405280600d81526020017f53747261676c6520546f6b656e000000000000000000000000000000000000008152506040518060400160405280600581526020017f5354524147000000000000000000000000000000000000000000000000000000815250611d88565b610f4233611d9e565b610f4a611db2565b6a0422ca8b0a00a42500000060018190555073a0419a28903961bdca6999c4589afc897a0211f45f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fc4336a013da329b6336471800000611dbc565b831561101e575f855f0160086101000a81548160ff0219169083151502179055507fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2600160405161101591906131b5565b60405180910390a15b5050505050565b5f8061102f611e3b565b9050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505090565b6002602052805f5260405f205f91509050805f0154908060010154908060020154908060030154905084565b60605f6110916117fb565b90508060040180546110a290612d62565b80601f01602080910402602001604051908101604052809291908181526020018280546110ce90612d62565b80156111195780601f106110f057610100808354040283529160200191611119565b820191905f5260205f20905b8154815290600101906020018083116110fc57829003601f168201915b505050505091505090565b5f8111611166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115d90613218565b60405180910390fd5b60015461119364e8d4a510008361117d91906130c0565b61118561074b565b611e6290919063ffffffff16565b11156111d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cb90613280565b60405180910390fd5b805f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161122f92919061329e565b602060405180830381865afa15801561124a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061126e9190612f65565b10156112af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a69061330f565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161130b9392919061332d565b6020604051808303815f875af1158015611327573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134b9190613095565b61138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190613026565b60405180910390fd5b6113a43364e8d4a510008361139f91906130c0565b611dbc565b3373ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f64e8d4a51000836113ed91906130c0565b426040516113fc929190612f2a565b60405180910390a250565b61140f611774565b42600381905550565b5f811161145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190612ddc565b60405180910390fd5b806114653330611653565b10156114a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149d9061330f565b60405180910390fd5b806114b033610cf8565b10156114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e890612e44565b60405180910390fd5b6114fb30826115f2565b50611505336119bd565b8060025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f8282546115539190613362565b925050819055504260025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600301819055503373ffffffffffffffffffffffffffffffffffffffff167f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b682426040516115e7929190612f2a565b60405180910390a250565b5f806115fc611822565b90506116098185856118cd565b600191505092915050565b6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b5f8061165d6117fb565b9050806001015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205491505092915050565b6301e1338081565b600c81565b6116f8611774565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611768575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161175f9190612c9b565b60405180910390fd5b61177181611e77565b50565b61177c611822565b73ffffffffffffffffffffffffffffffffffffffff1661179a611025565b73ffffffffffffffffffffffffffffffffffffffff16146117f9576117bd611822565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117f09190612c9b565b60405180910390fd5b565b5f7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00905090565b5f33905090565b6118368383836001611f48565b505050565b5f6118468484611653565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146118c757818110156118b8578281836040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526004016118af93929190613395565b60405180910390fd5b6118c684848484035f611f48565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361193d575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016119349190612c9b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119ad575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016119a49190612c9b565b60405180910390fd5b6119b8838383612125565b505050565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f816001015460035411611a15578160010154611a19565b6003545b42611a249190612ef7565b90504282600101819055505f6003541115611ac6575f611aa364e8d4a51000611a956301e13380611a876064611a79600c611a6b8a8c5f015461235490919063ffffffff16565b61235490919063ffffffff16565b61236990919063ffffffff16565b61236990919063ffffffff16565b61236990919063ffffffff16565b9050611abc818460020154611e6290919063ffffffff16565b8360020181905550505b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480611b7857507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16611b5f61237e565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611baf576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b611bb9611774565b50565b8173ffffffffffffffffffffffffffffffffffffffff166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c2457506040513d601f19601f82011682018060405250810190611c2191906133f4565b60015b611c6557816040517f4c9c8ce3000000000000000000000000000000000000000000000000000000008152600401611c5c9190612c9b565b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b8114611ccb57806040517faa1d49a4000000000000000000000000000000000000000000000000000000008152600401611cc29190612bd4565b60405180910390fd5b611cd583836123d1565b505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff1614611d5f576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00905090565b611d90612443565b611d9a8282612483565b5050565b611da6612443565b611daf816124bf565b50565b611dba612443565b565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e2c575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401611e239190612c9b565b60405180910390fd5b611e375f8383612125565b5050565b5f7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300905090565b5f8183611e6f9190613362565b905092915050565b5f611e80611e3b565b90505f815f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905082825f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505050565b5f611f516117fb565b90505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611fc3575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611fba9190612c9b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612033575f6040517f94280d6200000000000000000000000000000000000000000000000000000000815260040161202a9190612c9b565b60405180910390fd5b82816001015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550811561211e578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92585604051612115919061296e565b60405180910390a35b5050505050565b5f61212e6117fb565b90505f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036121825781816002015f8282546121769190613362565b92505081905550612254565b5f815f015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561220d578481846040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161220493929190613395565b60405180910390fd5b828103825f015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361229d5781816002015f82825403925050819055506122e9565b81815f015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612346919061296e565b60405180910390a350505050565b5f818361236191906130c0565b905092915050565b5f8183612376919061344c565b905092915050565b5f6123aa7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b612543565b5f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6123da8261254c565b8173ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a25f81511115612436576124308282612615565b5061243f565b61243e612695565b5b5050565b61244b6126d1565b612481576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61248b612443565b5f6124946117fb565b9050828160030190816124a79190613610565b50818160040190816124b99190613610565b50505050565b6124c7612443565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612537575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161252e9190612c9b565b60405180910390fd5b61254081611e77565b50565b5f819050919050565b5f8173ffffffffffffffffffffffffffffffffffffffff163b036125a757806040517f4c9c8ce300000000000000000000000000000000000000000000000000000000815260040161259e9190612c9b565b60405180910390fd5b806125d37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f1b612543565b5f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f808473ffffffffffffffffffffffffffffffffffffffff168460405161263e9190613723565b5f60405180830381855af49150503d805f8114612676576040519150601f19603f3d011682016040523d82523d5f602084013e61267b565b606091505b509150915061268b8583836126ef565b9250505092915050565b5f3411156126cf576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f6126da611d61565b5f0160089054906101000a900460ff16905090565b606082612704576126ff8261277c565b612774565b5f825114801561272a57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561276c57836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016127639190612c9b565b60405180910390fd5b819050612775565b5b9392505050565b5f8151111561278e5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612802826127c0565b61280c81856127ca565b935061281c8185602086016127da565b612825816127e8565b840191505092915050565b5f6020820190508181035f83015261284881846127f8565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61288a82612861565b9050919050565b61289a81612880565b81146128a4575f80fd5b50565b5f813590506128b581612891565b92915050565b5f819050919050565b6128cd816128bb565b81146128d7575f80fd5b50565b5f813590506128e8816128c4565b92915050565b5f806040838503121561290457612903612859565b5b5f612911858286016128a7565b9250506020612922858286016128da565b9150509250929050565b5f8115159050919050565b6129408161292c565b82525050565b5f6020820190506129595f830184612937565b92915050565b612968816128bb565b82525050565b5f6020820190506129815f83018461295f565b92915050565b5f805f6060848603121561299e5761299d612859565b5b5f6129ab868287016128a7565b93505060206129bc868287016128a7565b92505060406129cd868287016128da565b9150509250925092565b5f602082840312156129ec576129eb612859565b5b5f6129f9848285016128da565b91505092915050565b5f60ff82169050919050565b612a1781612a02565b82525050565b5f602082019050612a305f830184612a0e565b92915050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612a74826127e8565b810181811067ffffffffffffffff82111715612a9357612a92612a3e565b5b80604052505050565b5f612aa5612850565b9050612ab18282612a6b565b919050565b5f67ffffffffffffffff821115612ad057612acf612a3e565b5b612ad9826127e8565b9050602081019050919050565b828183375f83830152505050565b5f612b06612b0184612ab6565b612a9c565b905082815260208101848484011115612b2257612b21612a3a565b5b612b2d848285612ae6565b509392505050565b5f82601f830112612b4957612b48612a36565b5b8135612b59848260208601612af4565b91505092915050565b5f8060408385031215612b7857612b77612859565b5b5f612b85858286016128a7565b925050602083013567ffffffffffffffff811115612ba657612ba561285d565b5b612bb285828601612b35565b9150509250929050565b5f819050919050565b612bce81612bbc565b82525050565b5f602082019050612be75f830184612bc5565b92915050565b5f60208284031215612c0257612c01612859565b5b5f612c0f848285016128a7565b91505092915050565b5f819050919050565b5f612c3b612c36612c3184612861565b612c18565b612861565b9050919050565b5f612c4c82612c21565b9050919050565b5f612c5d82612c42565b9050919050565b612c6d81612c53565b82525050565b5f602082019050612c865f830184612c64565b92915050565b612c9581612880565b82525050565b5f602082019050612cae5f830184612c8c565b92915050565b5f608082019050612cc75f83018761295f565b612cd4602083018661295f565b612ce1604083018561295f565b612cee606083018461295f565b95945050505050565b5f8060408385031215612d0d57612d0c612859565b5b5f612d1a858286016128a7565b9250506020612d2b858286016128a7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612d7957607f821691505b602082108103612d8c57612d8b612d35565b5b50919050565b7f416d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f612dc6601d836127ca565b9150612dd182612d92565b602082019050919050565b5f6020820190508181035f830152612df381612dba565b9050919050565b7f496e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f612e2e6014836127ca565b9150612e3982612dfa565b602082019050919050565b5f6020820190508181035f830152612e5b81612e22565b9050919050565b7f457863656564732062616c616e636500000000000000000000000000000000005f82015250565b5f612e96600f836127ca565b9150612ea182612e62565b602082019050919050565b5f6020820190508181035f830152612ec381612e8a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f01826128bb565b9150612f0c836128bb565b9250828203905081811115612f2457612f23612eca565b5b92915050565b5f604082019050612f3d5f83018561295f565b612f4a602083018461295f565b9392505050565b5f81519050612f5f816128c4565b92915050565b5f60208284031215612f7a57612f79612859565b5b5f612f8784828501612f51565b91505092915050565b7f55534454205472616e73666572206661696c65642c20656e7375726520796f755f8201527f206861766520617070726f7665642074686520636f727265637420616c6c6f7760208201527f616e636500000000000000000000000000000000000000000000000000000000604082015250565b5f6130106044836127ca565b915061301b82612f90565b606082019050919050565b5f6020820190508181035f83015261303d81613004565b9050919050565b5f6040820190506130575f830185612c8c565b613064602083018461295f565b9392505050565b6130748161292c565b811461307e575f80fd5b50565b5f8151905061308f8161306b565b92915050565b5f602082840312156130aa576130a9612859565b5b5f6130b784828501613081565b91505092915050565b5f6130ca826128bb565b91506130d5836128bb565b92508282026130e3816128bb565b915082820484148315176130fa576130f9612eca565b5b5092915050565b7f72656e6f756e63654f776e6572736869702064697361626c65640000000000005f82015250565b5f613135601a836127ca565b915061314082613101565b602082019050919050565b5f6020820190508181035f83015261316281613129565b9050919050565b5f819050919050565b5f67ffffffffffffffff82169050919050565b5f61319f61319a61319584613169565b612c18565b613172565b9050919050565b6131af81613185565b82525050565b5f6020820190506131c85f8301846131a6565b92915050565b7f416d6f756e74206d757374206265203e203000000000000000000000000000005f82015250565b5f6132026012836127ca565b915061320d826131ce565b602082019050919050565b5f6020820190508181035f83015261322f816131f6565b9050919050565b7f45786365656473206d6178696d756d20737570706c79000000000000000000005f82015250565b5f61326a6016836127ca565b915061327582613236565b602082019050919050565b5f6020820190508181035f8301526132978161325e565b9050919050565b5f6040820190506132b15f830185612c8c565b6132be6020830184612c8c565b9392505050565b7f4e6f7420616c6c6f77656420746f207370656e640000000000000000000000005f82015250565b5f6132f96014836127ca565b9150613304826132c5565b602082019050919050565b5f6020820190508181035f830152613326816132ed565b9050919050565b5f6060820190506133405f830186612c8c565b61334d6020830185612c8c565b61335a604083018461295f565b949350505050565b5f61336c826128bb565b9150613377836128bb565b925082820190508082111561338f5761338e612eca565b5b92915050565b5f6060820190506133a85f830186612c8c565b6133b5602083018561295f565b6133c2604083018461295f565b949350505050565b6133d381612bbc565b81146133dd575f80fd5b50565b5f815190506133ee816133ca565b92915050565b5f6020828403121561340957613408612859565b5b5f613416848285016133e0565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613456826128bb565b9150613461836128bb565b9250826134715761347061341f565b5b828204905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026134d87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261349d565b6134e2868361349d565b95508019841693508086168417925050509392505050565b5f61351461350f61350a846128bb565b612c18565b6128bb565b9050919050565b5f819050919050565b61352d836134fa565b6135416135398261351b565b8484546134a9565b825550505050565b5f90565b613555613549565b613560818484613524565b505050565b5b81811015613583576135785f8261354d565b600181019050613566565b5050565b601f8211156135c8576135998161347c565b6135a28461348e565b810160208510156135b1578190505b6135c56135bd8561348e565b830182613565565b50505b505050565b5f82821c905092915050565b5f6135e85f19846008026135cd565b1980831691505092915050565b5f61360083836135d9565b9150826002028217905092915050565b613619826127c0565b67ffffffffffffffff81111561363257613631612a3e565b5b61363c8254612d62565b613647828285613587565b5f60209050601f831160018114613678575f8415613666578287015190505b61367085826135f5565b8655506136d7565b601f1984166136868661347c565b5f5b828110156136ad57848901518255600182019150602085019450602081019050613688565b868310156136ca57848901516136c6601f8916826135d9565b8355505b6001600288020188555050505b505050505050565b5f81519050919050565b5f81905092915050565b5f6136fd826136df565b61370781856136e9565b93506137178185602086016127da565b80840191505092915050565b5f61372e82846136f3565b91508190509291505056fea26469706673582212201b9e160b4abde9ac70de7bf12ffd21dee4d7e2dd56e5fee7dd8a8498608602d764736f6c63430008190033