608060405234801561000f575f80fd5b506040518060400160405280600981526020017f42756e6e795465737400000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f424e540000000000000000000000000000000000000000000000000000000000815250815f908161008a91906102dc565b50806001908161009a91906102dc565b5050506103ab565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061011d57607f821691505b6020821081036101305761012f6100d9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610157565b61019c8683610157565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6101e06101db6101d6846101b4565b6101bd565b6101b4565b9050919050565b5f819050919050565b6101f9836101c6565b61020d610205826101e7565b848454610163565b825550505050565b5f90565b610221610215565b61022c8184846101f0565b505050565b5b8181101561024f576102445f82610219565b600181019050610232565b5050565b601f8211156102945761026581610136565b61026e84610148565b8101602085101561027d578190505b61029161028985610148565b830182610231565b50505b505050565b5f82821c905092915050565b5f6102b45f1984600802610299565b1980831691505092915050565b5f6102cc83836102a5565b9150826002028217905092915050565b6102e5826100a2565b67ffffffffffffffff8111156102fe576102fd6100ac565b5b6103088254610106565b610313828285610253565b5f60209050601f831160018114610344575f8415610332578287015190505b61033c85826102c1565b8655506103a3565b601f19841661035286610136565b5f5b8281101561037957848901518255600182019150602085019450602081019050610354565b868310156103965784890151610392601f8916826102a5565b8355505b6001600288020188555050505b505050505050565b6134bb806103b85f395ff3fe608060405234801561000f575f80fd5b5060043610610135575f3560e01c806370a08231116100b6578063b88d4fde1161007a578063b88d4fde14610331578063c87b56dd1461034d578063cc8c771f1461037d578063e69257c214610399578063e985e9c5146103a3578063fa607ee9146103d357610135565b806370a082311461028f57806395d89b41146102bf578063a0bcfc7f146102dd578063a22cb465146102f9578063ac0207ad1461031557610135565b806323b872dd116100fd57806323b872dd146101ef57806334b46e2d1461020b57806342842e0e14610227578063501e406b146102435780636352211e1461025f57610135565b806301ffc9a71461013957806306fdde0314610169578063081812fc14610187578063095ea7b3146101b7578063211fa454146101d3575b5f80fd5b610153600480360381019061014e91906122b6565b6103ef565b60405161016091906122fb565b60405180910390f35b610171610400565b60405161017e9190612384565b60405180910390f35b6101a1600480360381019061019c91906123d7565b61048f565b6040516101ae9190612441565b60405180910390f35b6101d160048036038101906101cc9190612484565b6104aa565b005b6101ed60048036038101906101e891906125f0565b6104c0565b005b6102096004803603810190610204919061261b565b6105cc565b005b6102256004803603810190610220919061272b565b6106cb565b005b610241600480360381019061023c919061261b565b610b25565b005b61025d6004803603810190610258919061287f565b610b44565b005b610279600480360381019061027491906123d7565b610b57565b6040516102869190612441565b60405180910390f35b6102a960048036038101906102a491906128c6565b610b68565b6040516102b69190612900565b60405180910390f35b6102c7610c1e565b6040516102d49190612384565b60405180910390f35b6102f760048036038101906102f2919061287f565b610cae565b005b610313600480360381019061030e9190612943565b610cc1565b005b61032f600480360381019061032a919061287f565b610cd7565b005b61034b60048036038101906103469190612a1f565b610cea565b005b610367600480360381019061036291906123d7565b610d07565b6040516103749190612384565b60405180910390f35b61039760048036038101906103929190612a9f565b610d19565b005b6103a1611030565b005b6103bd60048036038101906103b89190612b15565b611081565b6040516103ca91906122fb565b60405180910390f35b6103ed60048036038101906103e8919061287f565b61110f565b005b5f6103f982611122565b9050919050565b60605f805461040e90612b80565b80601f016020809104026020016040519081016040528092919081815260200182805461043a90612b80565b80156104855780601f1061045c57610100808354040283529160200191610485565b820191905f5260205f20905b81548152906001019060200180831161046857829003601f168201915b5050505050905090565b5f61049982611182565b506104a382611208565b9050919050565b6104bc82826104b7611241565b611248565b5050565b60026104cb33610b68565b101561050c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050390612bfa565b60405180910390fd5b5f5b60028110156105445761053782826002811061052d5761052c612c18565b5b602002015161125a565b808060010191505061050e565b5061054f60076112dc565b5f61055a60076112f0565b905061056633826112fc565b6001600c5f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600961059b836113ef565b6040516020016105ac929190612d11565b60405160208183030381529060405290506105c782826114b9565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361063c575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016106339190612441565b60405180910390fd5b5f61064f838361064a611241565b611513565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106c5578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016106bc93929190612d34565b60405180910390fd5b50505050565b6001835114806106dc575060018251145b806106e8575060018151145b610727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071e90612dd9565b60405180910390fd5b6001835111156107be57825161073c33610b68565b101561077d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077490612e41565b60405180910390fd5b5f5b83518110156107b8576107ab84828151811061079e5761079d612c18565b5b602002602001015161125a565b808060010191505061077f565b50610a17565b6001825111156108cc5781516107d333610b68565b1015610814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080b90612ecf565b60405180910390fd5b5f5b82518110156108c657600c5f84838151811061083557610834612c18565b5b602002602001015181526020019081526020015f205f9054906101000a900460ff16610896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088d90612f37565b60405180910390fd5b6108b98382815181106108ac576108ab612c18565b5b602002602001015161125a565b8080600101915050610816565b50610a16565b6001815111156109da5780516108e133610b68565b1015610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091990612ecf565b60405180910390fd5b5f5b81518110156109d457600c5f83838151811061094357610942612c18565b5b602002602001015181526020019081526020015f205f9054906101000a900460ff166109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90612f37565b60405180910390fd5b6109c78282815181106109ba576109b9612c18565b5b602002602001015161125a565b8080600101915050610924565b50610a15565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0c90612fc5565b60405180910390fd5b5b5b610a2160076112dc565b5f610a2c60076112f0565b9050600c5f8281526020019081526020015f205f9054906101000a900460ff16158015610a745750600e5f8281526020019081526020015f205f9054906101000a900460ff16155b610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa9061302d565b60405180910390fd5b610abd33826112fc565b6001600d5f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600b610af2836113ef565b604051602001610b03929190612d11565b6040516020818303038152906040529050610b1e82826114b9565b5050505050565b610b3f83838360405180602001604052805f815250610cea565b505050565b8060099081610b5391906131d6565b5050565b5f610b6182611182565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bd9575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610bd09190612441565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b606060018054610c2d90612b80565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5990612b80565b8015610ca45780601f10610c7b57610100808354040283529160200191610ca4565b820191905f5260205f20905b815481529060010190602001808311610c8757829003601f168201915b5050505050905090565b8060089081610cbd91906131d6565b5050565b610cd3610ccc611241565b838361171e565b5050565b80600a9081610ce691906131d6565b5050565b610cf58484846105cc565b610d0184848484611887565b50505050565b6060610d1282611a39565b9050919050565b600182511480610d2a575060018151145b610d69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6090612dd9565b60405180910390fd5b600182511115610e00578151610d7e33610b68565b1015610dbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db690612e41565b60405180910390fd5b5f5b8251811015610dfa57610ded838281518110610de057610ddf612c18565b5b602002602001015161125a565b8080600101915050610dc1565b50610f4a565b600181511115610f0e578051610e1533610b68565b1015610e56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4d90612ecf565b60405180910390fd5b5f5b8151811015610f0857600c5f838381518110610e7757610e76612c18565b5b602002602001015181526020019081526020015f205f9054906101000a900460ff16610ed8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecf90612f37565b60405180910390fd5b610efb828281518110610eee57610eed612c18565b5b602002602001015161125a565b8080600101915050610e58565b50610f49565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4090613315565b60405180910390fd5b5b610f5460076112dc565b5f610f5f60076112f0565b9050600e5f8281526020019081526020015f205f9054906101000a900460ff1615610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb69061302d565b60405180910390fd5b610fc933826112fc565b6001600e5f8381526020019081526020015f205f6101000a81548160ff0219169083151502179055505f600a610ffe836113ef565b60405160200161100f929190612d11565b604051602081830303815290604052905061102a82826114b9565b50505050565b5f5b600a81101561107e5761104560076112dc565b5f61105060076112f0565b90506110707306827791185a604ebde40d1290018c1b7124cbea826112fc565b508080600101915050611032565b50565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b80600b908161111e91906131d6565b5050565b5f634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061117b575061117a82611b44565b5b9050919050565b5f8061118d83611c25565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111ff57826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016111f69190612900565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6112558383836001611c5e565b505050565b5f6112665f835f611513565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112d857816040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016112cf9190612900565b60405180910390fd5b5050565b6001815f015f828254019250508190555050565b5f815f01549050919050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361136c575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016113639190612441565b60405180910390fd5b5f61137883835f611513565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146113ea575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016113e19190612441565b60405180910390fd5b505050565b60605f60016113fd84611e1d565b0190505f8167ffffffffffffffff81111561141b5761141a6124c6565b5b6040519080825280601f01601f19166020018201604052801561144d5781602001600182028036833780820191505090505b5090505f82602001820190505b6001156114ae578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816114a3576114a2613333565b5b0494505f850361145a575b819350505050919050565b8060065f8481526020019081526020015f2090816114d791906131d6565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516115079190612900565b60405180910390a15050565b5f8061151e84611c25565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461155f5761155e818486611f6e565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146115ea5761159e5f855f80611c5e565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461166957600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361178e57816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016117859190612441565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161187a91906122fb565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611a33578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026118ca611241565b8685856040518563ffffffff1660e01b81526004016118ec94939291906133b2565b6020604051808303815f875af192505050801561192757506040513d601f19601f820116820180604052508101906119249190613410565b60015b6119a8573d805f8114611955576040519150601f19603f3d011682016040523d82523d5f602084013e61195a565b606091505b505f8151036119a057836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119979190612441565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611a3157836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611a289190612441565b60405180910390fd5b505b50505050565b6060611a4482611182565b505f60065f8481526020019081526020015f208054611a6290612b80565b80601f0160208091040260200160405190810160405280929190818152602001828054611a8e90612b80565b8015611ad95780601f10611ab057610100808354040283529160200191611ad9565b820191905f5260205f20905b815481529060010190602001808311611abc57829003601f168201915b505050505090505f611ae9612031565b90505f815103611afd578192505050611b3f565b5f82511115611b31578082604051602001611b1992919061343b565b60405160208183030381529060405292505050611b3f565b611b3a846120c1565b925050505b919050565b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c0e57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611c1e5750611c1d82612127565b5b9050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611c9657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611dc8575f611ca584611182565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d0f57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611d225750611d208184611081565b155b15611d6457826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611d5b9190612441565b60405180910390fd5b8115611dc657838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611e79577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611e6f57611e6e613333565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611eb6576d04ee2d6d415b85acef81000000008381611eac57611eab613333565b5b0492506020810190505b662386f26fc100008310611ee557662386f26fc100008381611edb57611eda613333565b5b0492506010810190505b6305f5e1008310611f0e576305f5e1008381611f0457611f03613333565b5b0492506008810190505b6127108310611f33576127108381611f2957611f28613333565b5b0492506004810190505b60648310611f565760648381611f4c57611f4b613333565b5b0492506002810190505b600a8310611f65576001810190505b80915050919050565b611f79838383612190565b61202c575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611fed57806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611fe49190612900565b60405180910390fd5b81816040517f177e802f00000000000000000000000000000000000000000000000000000000815260040161202392919061345e565b60405180910390fd5b505050565b60606008805461204090612b80565b80601f016020809104026020016040519081016040528092919081815260200182805461206c90612b80565b80156120b75780601f1061208e576101008083540402835291602001916120b7565b820191905f5260205f20905b81548152906001019060200180831161209a57829003601f168201915b5050505050905090565b60606120cc82611182565b505f6120d6612031565b90505f8151116120f45760405180602001604052805f81525061211f565b806120fe846113ef565b60405160200161210f92919061343b565b6040516020818303038152906040525b915050919050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561224757508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061220857506122078484611081565b5b8061224657508273ffffffffffffffffffffffffffffffffffffffff1661222e83611208565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61229581612261565b811461229f575f80fd5b50565b5f813590506122b08161228c565b92915050565b5f602082840312156122cb576122ca612259565b5b5f6122d8848285016122a2565b91505092915050565b5f8115159050919050565b6122f5816122e1565b82525050565b5f60208201905061230e5f8301846122ec565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61235682612314565b612360818561231e565b935061237081856020860161232e565b6123798161233c565b840191505092915050565b5f6020820190508181035f83015261239c818461234c565b905092915050565b5f819050919050565b6123b6816123a4565b81146123c0575f80fd5b50565b5f813590506123d1816123ad565b92915050565b5f602082840312156123ec576123eb612259565b5b5f6123f9848285016123c3565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61242b82612402565b9050919050565b61243b81612421565b82525050565b5f6020820190506124545f830184612432565b92915050565b61246381612421565b811461246d575f80fd5b50565b5f8135905061247e8161245a565b92915050565b5f806040838503121561249a57612499612259565b5b5f6124a785828601612470565b92505060206124b8858286016123c3565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6124fc8261233c565b810181811067ffffffffffffffff8211171561251b5761251a6124c6565b5b80604052505050565b5f61252d612250565b905061253982826124f3565b919050565b5f67ffffffffffffffff821115612558576125576124c6565b5b602082029050919050565b5f80fd5b5f6125796125748461253e565b612524565b9050806020840283018581111561259357612592612563565b5b835b818110156125bc57806125a888826123c3565b845260208401935050602081019050612595565b5050509392505050565b5f82601f8301126125da576125d96124c2565b5b60026125e7848285612567565b91505092915050565b5f6040828403121561260557612604612259565b5b5f612612848285016125c6565b91505092915050565b5f805f6060848603121561263257612631612259565b5b5f61263f86828701612470565b935050602061265086828701612470565b9250506040612661868287016123c3565b9150509250925092565b5f67ffffffffffffffff821115612685576126846124c6565b5b602082029050602081019050919050565b5f6126a86126a38461266b565b612524565b905080838252602082019050602084028301858111156126cb576126ca612563565b5b835b818110156126f457806126e088826123c3565b8452602084019350506020810190506126cd565b5050509392505050565b5f82601f830112612712576127116124c2565b5b8135612722848260208601612696565b91505092915050565b5f805f6060848603121561274257612741612259565b5b5f84013567ffffffffffffffff81111561275f5761275e61225d565b5b61276b868287016126fe565b935050602084013567ffffffffffffffff81111561278c5761278b61225d565b5b612798868287016126fe565b925050604084013567ffffffffffffffff8111156127b9576127b861225d565b5b6127c5868287016126fe565b9150509250925092565b5f80fd5b5f67ffffffffffffffff8211156127ed576127ec6124c6565b5b6127f68261233c565b9050602081019050919050565b828183375f83830152505050565b5f61282361281e846127d3565b612524565b90508281526020810184848401111561283f5761283e6127cf565b5b61284a848285612803565b509392505050565b5f82601f830112612866576128656124c2565b5b8135612876848260208601612811565b91505092915050565b5f6020828403121561289457612893612259565b5b5f82013567ffffffffffffffff8111156128b1576128b061225d565b5b6128bd84828501612852565b91505092915050565b5f602082840312156128db576128da612259565b5b5f6128e884828501612470565b91505092915050565b6128fa816123a4565b82525050565b5f6020820190506129135f8301846128f1565b92915050565b612922816122e1565b811461292c575f80fd5b50565b5f8135905061293d81612919565b92915050565b5f806040838503121561295957612958612259565b5b5f61296685828601612470565b92505060206129778582860161292f565b9150509250929050565b5f67ffffffffffffffff82111561299b5761299a6124c6565b5b6129a48261233c565b9050602081019050919050565b5f6129c36129be84612981565b612524565b9050828152602081018484840111156129df576129de6127cf565b5b6129ea848285612803565b509392505050565b5f82601f830112612a0657612a056124c2565b5b8135612a168482602086016129b1565b91505092915050565b5f805f8060808587031215612a3757612a36612259565b5b5f612a4487828801612470565b9450506020612a5587828801612470565b9350506040612a66878288016123c3565b925050606085013567ffffffffffffffff811115612a8757612a8661225d565b5b612a93878288016129f2565b91505092959194509250565b5f8060408385031215612ab557612ab4612259565b5b5f83013567ffffffffffffffff811115612ad257612ad161225d565b5b612ade858286016126fe565b925050602083013567ffffffffffffffff811115612aff57612afe61225d565b5b612b0b858286016126fe565b9150509250929050565b5f8060408385031215612b2b57612b2a612259565b5b5f612b3885828601612470565b9250506020612b4985828601612470565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b9757607f821691505b602082108103612baa57612ba9612b53565b5b50919050565b7f796f7520646f6e7420686176652069647320746f206275726e000000000000005f82015250565b5f612be460198361231e565b9150612bef82612bb0565b602082019050919050565b5f6020820190508181035f830152612c1181612bd8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b5f819050815f5260205f209050919050565b5f8154612c6d81612b80565b612c778186612c45565b9450600182165f8114612c915760018114612ca657612cd8565b60ff1983168652811515820286019350612cd8565b612caf85612c4f565b5f5b83811015612cd057815481890152600182019150602081019050612cb1565b838801955050505b50505092915050565b5f612ceb82612314565b612cf58185612c45565b9350612d0581856020860161232e565b80840191505092915050565b5f612d1c8285612c61565b9150612d288284612ce1565b91508190509392505050565b5f606082019050612d475f830186612432565b612d5460208301856128f1565b612d616040830184612432565b949350505050565b7f50726f766964652076616c75657320696e206f6e6c79206f6e6520706172616d5f8201527f6574657200000000000000000000000000000000000000000000000000000000602082015250565b5f612dc360248361231e565b9150612dce82612d69565b604082019050919050565b5f6020820190508181035f830152612df081612db7565b9050919050565b7f596f7520646f6e27742068617665204e46547320746f206275726e00000000005f82015250565b5f612e2b601b8361231e565b9150612e3682612df7565b602082019050919050565b5f6020820190508181035f830152612e5881612e1f565b9050919050565b7f596f7520646f6e2774206861766520546965722031204e46547320746f2062755f8201527f726e000000000000000000000000000000000000000000000000000000000000602082015250565b5f612eb960228361231e565b9150612ec482612e5f565b604082019050919050565b5f6020820190508181035f830152612ee681612ead565b9050919050565b7f4e4654206973206e6f74206120546965722031204e46542e00000000000000005f82015250565b5f612f2160188361231e565b9150612f2c82612eed565b602082019050919050565b5f6020820190508181035f830152612f4e81612f15565b9050919050565b7f50726f766964652076616c75657320696e20656974686572205f6275726e49645f8201527f206f72205f6275726e5469657231206f72205f6275726e546965723200000000602082015250565b5f612faf603c8361231e565b9150612fba82612f55565b604082019050919050565b5f6020820190508181035f830152612fdc81612fa3565b9050919050565b7f4e465420616c7265616479206d696e74656400000000000000000000000000005f82015250565b5f61301760128361231e565b915061302282612fe3565b602082019050919050565b5f6020820190508181035f8301526130448161300b565b9050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026130957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261305a565b61309f868361305a565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6130da6130d56130d0846123a4565b6130b7565b6123a4565b9050919050565b5f819050919050565b6130f3836130c0565b6131076130ff826130e1565b848454613066565b825550505050565b5f90565b61311b61310f565b6131268184846130ea565b505050565b5b818110156131495761313e5f82613113565b60018101905061312c565b5050565b601f82111561318e5761315f81612c4f565b6131688461304b565b81016020851015613177578190505b61318b6131838561304b565b83018261312b565b50505b505050565b5f82821c905092915050565b5f6131ae5f1984600802613193565b1980831691505092915050565b5f6131c6838361319f565b9150826002028217905092915050565b6131df82612314565b67ffffffffffffffff8111156131f8576131f76124c6565b5b6132028254612b80565b61320d82828561314d565b5f60209050601f83116001811461323e575f841561322c578287015190505b61323685826131bb565b86555061329d565b601f19841661324c86612c4f565b5f5b828110156132735784890151825560018201915060208501945060208101905061324e565b86831015613290578489015161328c601f89168261319f565b8355505b6001600288020188555050505b505050505050565b7f50726f766964652076616c75657320696e20656974686572205f6275726e49645f8201527f206f72205f6275726e5469657231000000000000000000000000000000000000602082015250565b5f6132ff602e8361231e565b915061330a826132a5565b604082019050919050565b5f6020820190508181035f83015261332c816132f3565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f61338482613360565b61338e818561336a565b935061339e81856020860161232e565b6133a78161233c565b840191505092915050565b5f6080820190506133c55f830187612432565b6133d26020830186612432565b6133df60408301856128f1565b81810360608301526133f1818461337a565b905095945050505050565b5f8151905061340a8161228c565b92915050565b5f6020828403121561342557613424612259565b5b5f613432848285016133fc565b91505092915050565b5f6134468285612ce1565b91506134528284612ce1565b91508190509392505050565b5f6040820190506134715f830185612432565b61347e60208301846128f1565b939250505056fea2646970667358221220cfc41671c73e5a0a83d2182cd065003288def0aeaf1559b7a8b0bdd14db6c06a64736f6c63430008190033