608060405234801562000010575f80fd5b506040518060400160405280601581526020017f456e6368616e746d696e7450726f647563744d697800000000000000000000008152506040518060400160405280600381526020017f45504d0000000000000000000000000000000000000000000000000000000000815250815f90816200008d9190620003f6565b5080600190816200009f9190620003f6565b505050620000c2620000b6620000c860201b60201c565b620000cf60201b60201c565b620004da565b5f33905090565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200020e57607f821691505b602082108103620002245762000223620001c9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620002887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200024b565b6200029486836200024b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620002de620002d8620002d284620002ac565b620002b5565b620002ac565b9050919050565b5f819050919050565b620002f983620002be565b620003116200030882620002e5565b84845462000257565b825550505050565b5f90565b6200032762000319565b62000334818484620002ee565b505050565b5b818110156200035b576200034f5f826200031d565b6001810190506200033a565b5050565b601f821115620003aa5762000374816200022a565b6200037f846200023c565b810160208510156200038f578190505b620003a76200039e856200023c565b83018262000339565b50505b505050565b5f82821c905092915050565b5f620003cc5f1984600802620003af565b1980831691505092915050565b5f620003e68383620003bb565b9150826002028217905092915050565b620004018262000192565b67ffffffffffffffff8111156200041d576200041c6200019c565b5b620004298254620001f6565b620004368282856200035f565b5f60209050601f8311600181146200046c575f841562000457578287015190505b620004638582620003d9565b865550620004d2565b601f1984166200047c866200022a565b5f5b82811015620004a5578489015182556001820191506020850194506020810190506200047e565b86831015620004c55784890151620004c1601f891682620003bb565b8355505b6001600288020188555050505b505050505050565b613d7480620004e85f395ff3fe608060405234801561000f575f80fd5b5060043610610156575f3560e01c8063715018a6116100c1578063b88d4fde1161007a578063b88d4fde146103e8578063ba7b059c14610404578063c87b56dd14610434578063d4413ade14610464578063e985e9c514610494578063f2fde38b146104c457610156565b8063715018a6146103265780637805a92c146103305780638cc9dfc5146103605780638da5cb5b1461039057806395d89b41146103ae578063a22cb465146103cc57610156565b80632f745c59116101135780632f745c591461022e57806342842e0e1461025e5780634f6ccce71461027a5780634fa1f7ae146102aa5780636352211e146102c657806370a08231146102f657610156565b806301ffc9a71461015a57806306fdde031461018a578063081812fc146101a8578063095ea7b3146101d857806318160ddd146101f457806323b872dd14610212575b5f80fd5b610174600480360381019061016f91906126ec565b6104e0565b6040516101819190612731565b60405180910390f35b6101926104f1565b60405161019f91906127d4565b60405180910390f35b6101c260048036038101906101bd9190612827565b610580565b6040516101cf9190612891565b60405180910390f35b6101f260048036038101906101ed91906128d4565b6105c2565b005b6101fc6106d8565b6040516102099190612921565b60405180910390f35b61022c6004803603810190610227919061293a565b6106e4565b005b610248600480360381019061024391906128d4565b610744565b6040516102559190612921565b60405180910390f35b6102786004803603810190610273919061293a565b6107e4565b005b610294600480360381019061028f9190612827565b610803565b6040516102a19190612921565b60405180910390f35b6102c460048036038101906102bf9190612ab6565b610871565b005b6102e060048036038101906102db9190612827565b610968565b6040516102ed9190612891565b60405180910390f35b610310600480360381019061030b9190612b2c565b6109ec565b60405161031d9190612921565b60405180910390f35b61032e610aa0565b005b61034a60048036038101906103459190612b57565b610ab3565b6040516103579190612921565b60405180910390f35b61037a60048036038101906103759190612827565b610b21565b6040516103879190612921565b60405180910390f35b610398610b82565b6040516103a59190612891565b60405180910390f35b6103b6610baa565b6040516103c391906127d4565b60405180910390f35b6103e660048036038101906103e19190612bc8565b610c3a565b005b61040260048036038101906103fd9190612ca4565b610c50565b005b61041e60048036038101906104199190612b57565b610cb2565b60405161042b9190612921565b60405180910390f35b61044e60048036038101906104499190612827565b610d78565b60405161045b91906127d4565b60405180910390f35b61047e60048036038101906104799190612827565b610d8a565b60405161048b91906127d4565b60405180910390f35b6104ae60048036038101906104a99190612d24565b610e73565b6040516104bb9190612731565b60405180910390f35b6104de60048036038101906104d99190612b2c565b610f01565b005b5f6104ea82610f83565b9050919050565b60605f80546104ff90612d8f565b80601f016020809104026020016040519081016040528092919081815260200182805461052b90612d8f565b80156105765780601f1061054d57610100808354040283529160200191610576565b820191905f5260205f20905b81548152906001019060200180831161055957829003601f168201915b5050505050905090565b5f61058a82610fe3565b60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f6105cc82610968565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361063c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063390612e2f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661065b61102e565b73ffffffffffffffffffffffffffffffffffffffff16148061068a57506106898161068461102e565b610e73565b5b6106c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c090612ebd565b60405180910390fd5b6106d38383611035565b505050565b5f600880549050905090565b6106f56106ef61102e565b826110eb565b610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90612f4b565b60405180910390fd5b61073f83838361117f565b505050565b5f61074e836109ec565b821061078f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078690612fd9565b60405180910390fd5b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2054905092915050565b6107fe83838360405180602001604052805f815250610c50565b505050565b5f61080c6106d8565b821061084d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084490613067565b60405180910390fd5b6008828154811061086157610860613085565b5b905f5260205f2001549050919050565b61087961146b565b5f600f8360405161088a91906130ec565b908152602001604051809103902054146108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d09061314c565b60405180910390fd5b5f6108e4600c6114e9565b90506108f0600c6114f5565b6109016108fb610b82565b82611509565b61090b8183611526565b42600d5f8381526020019081526020015f208190555082600e5f8381526020019081526020015f20908161093f9190613307565b5080600f8460405161095191906130ec565b908152602001604051809103902081905550505050565b5f80610973836115c8565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109da90613420565b60405180910390fd5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a52906134ae565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610aa861146b565b610ab15f611601565b565b5f80600f83604051610ac591906130ec565b90815260200160405180910390205490505f8103610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f90613516565b60405180910390fd5b80915050919050565b5f80600d5f8481526020019081526020015f205490505f8103610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b709061357e565b60405180910390fd5b80915050919050565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610bb990612d8f565b80601f0160208091040260200160405190810160405280929190818152602001828054610be590612d8f565b8015610c305780601f10610c0757610100808354040283529160200191610c30565b820191905f5260205f20905b815481529060010190602001808311610c1357829003601f168201915b5050505050905090565b610c4c610c4561102e565b83836116c4565b5050565b610c61610c5b61102e565b836110eb565b610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790612f4b565b60405180910390fd5b610cac8484848461182b565b50505050565b5f80600f83604051610cc491906130ec565b90815260200160405180910390205490505f8103610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e90613516565b60405180910390fd5b5f600d5f8381526020019081526020015f205490505f8103610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d659061360c565b60405180910390fd5b8092505050919050565b6060610d8382611887565b9050919050565b60605f600e5f8481526020019081526020015f208054610da990612d8f565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd590612d8f565b8015610e205780601f10610df757610100808354040283529160200191610e20565b820191905f5260205f20905b815481529060010190602001808311610e0357829003601f168201915b505050505090505f815111610e6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6190613674565b60405180910390fd5b80915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b610f0961146b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90613702565b60405180910390fd5b610f8081611601565b50565b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610fdc5750610fdb82611991565b5b9050919050565b610fec81611a0a565b61102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102290613420565b60405180910390fd5b50565b5f33905090565b8160045f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110a583610968565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b5f806110f683610968565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061113857506111378185610e73565b5b8061117657508373ffffffffffffffffffffffffffffffffffffffff1661115e84610580565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661119f82610968565b73ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90613790565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a9061381e565b60405180910390fd5b6112708383836001611a4a565b8273ffffffffffffffffffffffffffffffffffffffff1661129082610968565b73ffffffffffffffffffffffffffffffffffffffff16146112e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dd90613790565b60405180910390fd5b60045f8281526020019081526020015f205f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600160035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282540392505081905550600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46114668383836001611a5c565b505050565b61147361102e565b73ffffffffffffffffffffffffffffffffffffffff16611491610b82565b73ffffffffffffffffffffffffffffffffffffffff16146114e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114de90613886565b60405180910390fd5b565b5f815f01549050919050565b6001815f015f828254019250508190555050565b611522828260405180602001604052805f815250611a62565b5050565b61152f82611a0a565b61156e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156590613914565b60405180910390fd5b80600a5f8481526020019081526020015f20908161158c9190613307565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516115bc9190612921565b60405180910390a15050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611732576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117299061397c565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161181e9190612731565b60405180910390a3505050565b61183684848461117f565b61184284848484611abc565b611881576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187890613a0a565b60405180910390fd5b50505050565b606061189282610fe3565b5f600a5f8481526020019081526020015f2080546118af90612d8f565b80601f01602080910402602001604051908101604052809291908181526020018280546118db90612d8f565b80156119265780601f106118fd57610100808354040283529160200191611926565b820191905f5260205f20905b81548152906001019060200180831161190957829003601f168201915b505050505090505f611936611c3e565b90505f81510361194a57819250505061198c565b5f8251111561197e578082604051602001611966929190613a28565b6040516020818303038152906040529250505061198c565b61198784611c54565b925050505b919050565b5f7f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611a035750611a0282611cb9565b5b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff16611a2b836115c8565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611a5684848484611d9a565b50505050565b50505050565b611a6c8383611ef5565b611a785f848484611abc565b611ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aae90613a0a565b60405180910390fd5b505050565b5f611adc8473ffffffffffffffffffffffffffffffffffffffff16612108565b15611c31578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611b0561102e565b8786866040518563ffffffff1660e01b8152600401611b279493929190613a9d565b6020604051808303815f875af1925050508015611b6257506040513d601f19601f82011682018060405250810190611b5f9190613afb565b60015b611be1573d805f8114611b90576040519150601f19603f3d011682016040523d82523d5f602084013e611b95565b606091505b505f815103611bd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd090613a0a565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611c36565b600190505b949350505050565b606060405180602001604052805f815250905090565b6060611c5f82610fe3565b5f611c68611c3e565b90505f815111611c865760405180602001604052805f815250611cb1565b80611c908461212a565b604051602001611ca1929190613a28565b6040516020818303038152906040525b915050919050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611d8357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611d935750611d92826121f4565b5b9050919050565b611da68484848461225d565b6001811115611dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de190613b96565b60405180910390fd5b5f8290505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611e2f57611e2a81612263565b611e6e565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611e6d57611e6c85826122a7565b5b5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611eaf57611eaa816123fd565b611eee565b8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611eed57611eec84826124bd565b5b5b5050505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5a90613bfe565b60405180910390fd5b611f6c81611a0a565b15611fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa390613c66565b60405180910390fd5b611fb95f83836001611a4a565b611fc281611a0a565b15612002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff990613c66565b60405180910390fd5b600160035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508160025f8381526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46121045f83836001611a5c565b5050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60605f600161213884612535565b0190505f8167ffffffffffffffff81111561215657612155612992565b5b6040519080825280601f01601f1916602001820160405280156121885781602001600182028036833780820191505090505b5090505f82602001820190505b6001156121e9578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816121de576121dd613c84565b5b0494505f8503612195575b819350505050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b50505050565b60088054905060095f8381526020019081526020015f2081905550600881908060018154018082558091505060019003905f5260205f20015f909190919091505550565b5f60016122b3846109ec565b6122bd9190613cde565b90505f60075f8481526020019081526020015f20549050818114612394575f60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f205490508060065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055508160075f8381526020019081526020015f2081905550505b60075f8481526020019081526020015f205f905560065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f905550505050565b5f60016008805490506124109190613cde565b90505f60095f8481526020019081526020015f205490505f6008838154811061243c5761243b613085565b5b905f5260205f2001549050806008838154811061245c5761245b613085565b5b905f5260205f2001819055508160095f8381526020019081526020015f208190555060095f8581526020019081526020015f205f905560088054806124a4576124a3613d11565b5b600190038181905f5260205f20015f9055905550505050565b5f6124c7836109ec565b90508160065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20819055508060075f8481526020019081526020015f2081905550505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612591577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161258757612586613c84565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106125ce576d04ee2d6d415b85acef810000000083816125c4576125c3613c84565b5b0492506020810190505b662386f26fc1000083106125fd57662386f26fc1000083816125f3576125f2613c84565b5b0492506010810190505b6305f5e1008310612626576305f5e100838161261c5761261b613c84565b5b0492506008810190505b612710831061264b57612710838161264157612640613c84565b5b0492506004810190505b6064831061266e576064838161266457612663613c84565b5b0492506002810190505b600a831061267d576001810190505b80915050919050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6126cb81612697565b81146126d5575f80fd5b50565b5f813590506126e6816126c2565b92915050565b5f602082840312156127015761270061268f565b5b5f61270e848285016126d8565b91505092915050565b5f8115159050919050565b61272b81612717565b82525050565b5f6020820190506127445f830184612722565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612781578082015181840152602081019050612766565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6127a68261274a565b6127b08185612754565b93506127c0818560208601612764565b6127c98161278c565b840191505092915050565b5f6020820190508181035f8301526127ec818461279c565b905092915050565b5f819050919050565b612806816127f4565b8114612810575f80fd5b50565b5f81359050612821816127fd565b92915050565b5f6020828403121561283c5761283b61268f565b5b5f61284984828501612813565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61287b82612852565b9050919050565b61288b81612871565b82525050565b5f6020820190506128a45f830184612882565b92915050565b6128b381612871565b81146128bd575f80fd5b50565b5f813590506128ce816128aa565b92915050565b5f80604083850312156128ea576128e961268f565b5b5f6128f7858286016128c0565b925050602061290885828601612813565b9150509250929050565b61291b816127f4565b82525050565b5f6020820190506129345f830184612912565b92915050565b5f805f606084860312156129515761295061268f565b5b5f61295e868287016128c0565b935050602061296f868287016128c0565b925050604061298086828701612813565b9150509250925092565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6129c88261278c565b810181811067ffffffffffffffff821117156129e7576129e6612992565b5b80604052505050565b5f6129f9612686565b9050612a0582826129bf565b919050565b5f67ffffffffffffffff821115612a2457612a23612992565b5b612a2d8261278c565b9050602081019050919050565b828183375f83830152505050565b5f612a5a612a5584612a0a565b6129f0565b905082815260208101848484011115612a7657612a7561298e565b5b612a81848285612a3a565b509392505050565b5f82601f830112612a9d57612a9c61298a565b5b8135612aad848260208601612a48565b91505092915050565b5f8060408385031215612acc57612acb61268f565b5b5f83013567ffffffffffffffff811115612ae957612ae8612693565b5b612af585828601612a89565b925050602083013567ffffffffffffffff811115612b1657612b15612693565b5b612b2285828601612a89565b9150509250929050565b5f60208284031215612b4157612b4061268f565b5b5f612b4e848285016128c0565b91505092915050565b5f60208284031215612b6c57612b6b61268f565b5b5f82013567ffffffffffffffff811115612b8957612b88612693565b5b612b9584828501612a89565b91505092915050565b612ba781612717565b8114612bb1575f80fd5b50565b5f81359050612bc281612b9e565b92915050565b5f8060408385031215612bde57612bdd61268f565b5b5f612beb858286016128c0565b9250506020612bfc85828601612bb4565b9150509250929050565b5f67ffffffffffffffff821115612c2057612c1f612992565b5b612c298261278c565b9050602081019050919050565b5f612c48612c4384612c06565b6129f0565b905082815260208101848484011115612c6457612c6361298e565b5b612c6f848285612a3a565b509392505050565b5f82601f830112612c8b57612c8a61298a565b5b8135612c9b848260208601612c36565b91505092915050565b5f805f8060808587031215612cbc57612cbb61268f565b5b5f612cc9878288016128c0565b9450506020612cda878288016128c0565b9350506040612ceb87828801612813565b925050606085013567ffffffffffffffff811115612d0c57612d0b612693565b5b612d1887828801612c77565b91505092959194509250565b5f8060408385031215612d3a57612d3961268f565b5b5f612d47858286016128c0565b9250506020612d58858286016128c0565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612da657607f821691505b602082108103612db957612db8612d62565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e655f8201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e19602183612754565b9150612e2482612dbf565b604082019050919050565b5f6020820190508181035f830152612e4681612e0d565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f5f8201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b5f612ea7603d83612754565b9150612eb282612e4d565b604082019050919050565b5f6020820190508181035f830152612ed481612e9b565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e655f8201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b5f612f35602d83612754565b9150612f4082612edb565b604082019050919050565b5f6020820190508181035f830152612f6281612f29565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f755f8201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b5f612fc3602b83612754565b9150612fce82612f69565b604082019050919050565b5f6020820190508181035f830152612ff081612fb7565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f5f8201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b5f613051602c83612754565b915061305c82612ff7565b604082019050919050565b5f6020820190508181035f83015261307e81613045565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b5f6130c68261274a565b6130d081856130b2565b93506130e0818560208601612764565b80840191505092915050565b5f6130f782846130bc565b915081905092915050565b7f566964656f2043494420616c72656164792075736564000000000000000000005f82015250565b5f613136601683612754565b915061314182613102565b602082019050919050565b5f6020820190508181035f8301526131638161312a565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026131c67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261318b565b6131d0868361318b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61320b613206613201846127f4565b6131e8565b6127f4565b9050919050565b5f819050919050565b613224836131f1565b61323861323082613212565b848454613197565b825550505050565b5f90565b61324c613240565b61325781848461321b565b505050565b5b8181101561327a5761326f5f82613244565b60018101905061325d565b5050565b601f8211156132bf576132908161316a565b6132998461317c565b810160208510156132a8578190505b6132bc6132b48561317c565b83018261325c565b50505b505050565b5f82821c905092915050565b5f6132df5f19846008026132c4565b1980831691505092915050565b5f6132f783836132d0565b9150826002028217905092915050565b6133108261274a565b67ffffffffffffffff81111561332957613328612992565b5b6133338254612d8f565b61333e82828561327e565b5f60209050601f83116001811461336f575f841561335d578287015190505b61336785826132ec565b8655506133ce565b601f19841661337d8661316a565b5f5b828110156133a45784890151825560018201915060208501945060208101905061337f565b868310156133c157848901516133bd601f8916826132d0565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a20696e76616c696420746f6b656e20494400000000000000005f82015250565b5f61340a601883612754565b9150613415826133d6565b602082019050919050565b5f6020820190508181035f830152613437816133fe565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f7420612076615f8201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b5f613498602983612754565b91506134a38261343e565b604082019050919050565b5f6020820190508181035f8301526134c58161348c565b9050919050565b7f566964656f20434944206e6f7420666f756e64000000000000000000000000005f82015250565b5f613500601383612754565b915061350b826134cc565b602082019050919050565b5f6020820190508181035f83015261352d816134f4565b9050919050565b7f546f6b656e206e6f7420666f756e6400000000000000000000000000000000005f82015250565b5f613568600f83612754565b915061357382613534565b602082019050919050565b5f6020820190508181035f8301526135958161355c565b9050919050565b7f546f6b656e206e6f7420666f756e6420666f722074686520676976656e2056695f8201527f64656f2043494400000000000000000000000000000000000000000000000000602082015250565b5f6135f6602783612754565b91506136018261359c565b604082019050919050565b5f6020820190508181035f830152613623816135ea565b9050919050565b7f546f6b656e204944206e6f7420666f756e6400000000000000000000000000005f82015250565b5f61365e601283612754565b91506136698261362a565b602082019050919050565b5f6020820190508181035f83015261368b81613652565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136ec602683612754565b91506136f782613692565b604082019050919050565b5f6020820190508181035f830152613719816136e0565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f7272656374205f8201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b5f61377a602583612754565b915061378582613720565b604082019050919050565b5f6020820190508181035f8301526137a78161376e565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613808602483612754565b9150613813826137ae565b604082019050919050565b5f6020820190508181035f830152613835816137fc565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613870602083612754565b915061387b8261383c565b602082019050919050565b5f6020820190508181035f83015261389d81613864565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e5f8201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b5f6138fe602e83612754565b9150613909826138a4565b604082019050919050565b5f6020820190508181035f83015261392b816138f2565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c6572000000000000005f82015250565b5f613966601983612754565b915061397182613932565b602082019050919050565b5f6020820190508181035f8301526139938161395a565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e2045524337323152655f8201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b5f6139f4603283612754565b91506139ff8261399a565b604082019050919050565b5f6020820190508181035f830152613a21816139e8565b9050919050565b5f613a3382856130bc565b9150613a3f82846130bc565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f613a6f82613a4b565b613a798185613a55565b9350613a89818560208601612764565b613a928161278c565b840191505092915050565b5f608082019050613ab05f830187612882565b613abd6020830186612882565b613aca6040830185612912565b8181036060830152613adc8184613a65565b905095945050505050565b5f81519050613af5816126c2565b92915050565b5f60208284031215613b1057613b0f61268f565b5b5f613b1d84828501613ae7565b91505092915050565b7f455243373231456e756d657261626c653a20636f6e73656375746976652074725f8201527f616e7366657273206e6f7420737570706f727465640000000000000000000000602082015250565b5f613b80603583612754565b9150613b8b82613b26565b604082019050919050565b5f6020820190508181035f830152613bad81613b74565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f613be8602083612754565b9150613bf382613bb4565b602082019050919050565b5f6020820190508181035f830152613c1581613bdc565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e746564000000005f82015250565b5f613c50601c83612754565b9150613c5b82613c1c565b602082019050919050565b5f6020820190508181035f830152613c7d81613c44565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613ce8826127f4565b9150613cf3836127f4565b9250828203905081811115613d0b57613d0a613cb1565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffdfea26469706673582212207b52bc8665337713bd11c2bc30601f1c8f3b3d1492c513b5b227047374347c6964736f6c63430008150033