608060405234801561000f575f5ffd5b506040518060400160405280600881526020017f4861696b754e46540000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f484b4e4654000000000000000000000000000000000000000000000000000000815250815f908161008a9190610303565b50806001908161009a9190610303565b5050506100ad60066100b260201b60201c565b6103d2565b6001815f015f828254019250508190555050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061014157607f821691505b602082108103610154576101536100fd565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101b67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261017b565b6101c0868361017b565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6102046101ff6101fa846101d8565b6101e1565b6101d8565b9050919050565b5f819050919050565b61021d836101ea565b6102316102298261020b565b848454610187565b825550505050565b5f5f905090565b610248610239565b610253818484610214565b505050565b5b818110156102765761026b5f82610240565b600181019050610259565b5050565b601f8211156102bb5761028c8161015a565b6102958461016c565b810160208510156102a4578190505b6102b86102b08561016c565b830182610258565b50505b505050565b5f82821c905092915050565b5f6102db5f19846008026102c0565b1980831691505092915050565b5f6102f383836102cc565b9150826002028217905092915050565b61030c826100c6565b67ffffffffffffffff811115610325576103246100d0565b5b61032f825461012a565b61033a82828561027a565b5f60209050601f83116001811461036b575f8415610359578287015190505b61036385826102e8565b8655506103ca565b601f1984166103798661015a565b5f5b828110156103a05784890151825560018201915060208501945060208101905061037b565b868310156103bd57848901516103b9601f8916826102cc565b8355505b6001600288020188555050505b505050505050565b612c76806103df5f395ff3fe608060405234801561000f575f5ffd5b506004361061011f575f3560e01c80636352211e116100ab578063a22cb4651161006f578063a22cb4651461032c578063ad35ca7214610348578063b88d4fde14610378578063c87b56dd14610394578063e985e9c5146103c45761011f565b80636352211e1461024b57806370a082311461027b5780637cb82b2a146102ab57806395d89b41146102de57806397afe82d146102fc5761011f565b806323b872dd116100f257806323b872dd146101bd5780632c83ea56146101d9578063350fe165146101f557806342842e0e1461021157806361bc221a1461022d5761011f565b806301ffc9a71461012357806306fdde0314610153578063081812fc14610171578063095ea7b3146101a1575b5f5ffd5b61013d60048036038101906101389190611ef7565b6103f4565b60405161014a9190611f3c565b60405180910390f35b61015b6104d5565b6040516101689190611fc5565b60405180910390f35b61018b60048036038101906101869190612018565b610564565b6040516101989190612082565b60405180910390f35b6101bb60048036038101906101b691906120c5565b61057f565b005b6101d760048036038101906101d29190612103565b610595565b005b6101f360048036038101906101ee9190612153565b610694565b005b61020f600480360381019061020a91906122bd565b610789565b005b61022b60048036038101906102269190612103565b6109e9565b005b610235610a08565b6040516102429190612370565b60405180910390f35b61026560048036038101906102609190612018565b610a13565b6040516102729190612082565b60405180910390f35b61029560048036038101906102909190612389565b610a24565b6040516102a29190612370565b60405180910390f35b6102c560048036038101906102c09190612018565b610ada565b6040516102d594939291906123b4565b60405180910390f35b6102e6610cb7565b6040516102f39190611fc5565b60405180910390f35b610316600480360381019061031191906120c5565b610d47565b6040516103239190612370565b60405180910390f35b61034660048036038101906103419190612436565b610d72565b005b610362600480360381019061035d9190612389565b610d88565b60405161036f919061252b565b60405180910390f35b610392600480360381019061038d91906125e9565b610e9d565b005b6103ae60048036038101906103a99190612018565b610eba565b6040516103bb9190611fc5565b60405180910390f35b6103de60048036038101906103d99190612669565b610f20565b6040516103eb9190611f3c565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104be57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104ce57506104cd82610fae565b5b9050919050565b60605f80546104e3906126d4565b80601f016020809104026020016040519081016040528092919081815260200182805461050f906126d4565b801561055a5780601f106105315761010080835404028352916020019161055a565b820191905f5260205f20905b81548152906001019060200180831161053d57829003601f168201915b5050505050905090565b5f61056e82611017565b506105788261109d565b9050919050565b610591828261058c6110d6565b6110dd565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610605575f6040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016105fc9190612082565b60405180910390fd5b5f61061883836106136110d6565b6110ef565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461068e578382826040517f64283d7b00000000000000000000000000000000000000000000000000000000815260040161068593929190612704565b60405180910390fd5b50505050565b3373ffffffffffffffffffffffffffffffffffffffff166106b483610a13565b73ffffffffffffffffffffffffffffffffffffffff161461070a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610701906127a9565b60405180910390fd5b61072433828460405180602001604052805f8152506112fa565b60095f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f90919091909150555050565b6008836040516107999190612801565b90815260200160405180910390205f9054906101000a900460ff16806107e657506008826040516107ca9190612801565b90815260200160405180910390205f9054906101000a900460ff165b8061081857506008816040516107fc9190612801565b90815260200160405180910390205f9054906101000a900460ff165b1561084f576040517f693a889e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61085a6006611317565b90506108663382611323565b60405180608001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381525060075f8381526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101908161090791906129b7565b50604082015181600201908161091d91906129b7565b50606082015181600301908161093391906129b7565b5090505060016008856040516109499190612801565b90815260200160405180910390205f6101000a81548160ff021916908315150217905550600160088460405161097f9190612801565b90815260200160405180910390205f6101000a81548160ff02191690831515021790555060016008836040516109b59190612801565b90815260200160405180910390205f6101000a81548160ff0219169083151502179055506109e36006611340565b50505050565b610a0383838360405180602001604052805f815250610e9d565b505050565b6006805f0154905081565b5f610a1d82611017565b9050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a95575f6040517f89c62b64000000000000000000000000000000000000000000000000000000008152600401610a8c9190612082565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6007602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001018054610b1e906126d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4a906126d4565b8015610b955780601f10610b6c57610100808354040283529160200191610b95565b820191905f5260205f20905b815481529060010190602001808311610b7857829003601f168201915b505050505090806002018054610baa906126d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd6906126d4565b8015610c215780601f10610bf857610100808354040283529160200191610c21565b820191905f5260205f20905b815481529060010190602001808311610c0457829003601f168201915b505050505090806003018054610c36906126d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c62906126d4565b8015610cad5780601f10610c8457610100808354040283529160200191610cad565b820191905f5260205f20905b815481529060010190602001808311610c9057829003601f168201915b5050505050905084565b606060018054610cc6906126d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf2906126d4565b8015610d3d5780601f10610d1457610100808354040283529160200191610d3d565b820191905f5260205f20905b815481529060010190602001808311610d2057829003601f168201915b5050505050905090565b6009602052815f5260405f208181548110610d60575f80fd5b905f5260205f20015f91509150505481565b610d84610d7d6110d6565b8383611354565b5050565b60605f60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054905011610e0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0390612ad0565b60405180910390fd5b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610e9157602002820191905f5260205f20905b815481526020019060010190808311610e7d575b50505050509050919050565b610ea8848484610595565b610eb4848484846114bd565b50505050565b6060610ec582611017565b505f610ecf61166f565b90505f815111610eed5760405180602001604052805f815250610f18565b80610ef784611685565b604051602001610f08929190612aee565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f5f6110228361174f565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361109457826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161108b9190612370565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6110ea8383836001611788565b505050565b5f5f6110fa8461174f565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461113b5761113a818486611947565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146111c65761117a5f855f5f611788565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461124557600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b611305848484611a0a565b611311848484846114bd565b50505050565b5f815f01549050919050565b61133c828260405180602001604052805f815250611b72565b5050565b6001815f015f828254019250508190555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113c457816040517f5b08ba180000000000000000000000000000000000000000000000000000000081526004016113bb9190612082565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516114b09190611f3c565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611669578273ffffffffffffffffffffffffffffffffffffffff1663150b7a026115006110d6565b8685856040518563ffffffff1660e01b81526004016115229493929190612b63565b6020604051808303815f875af192505050801561155d57506040513d601f19601f8201168201806040525081019061155a9190612bc1565b60015b6115de573d805f811461158b576040519150601f19603f3d011682016040523d82523d5f602084013e611590565b606091505b505f8151036115d657836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115cd9190612082565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461166757836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161165e9190612082565b60405180910390fd5b505b50505050565b606060405180602001604052805f815250905090565b60605f600161169384611b8d565b0190505f8167ffffffffffffffff8111156116b1576116b0612199565b5b6040519080825280601f01601f1916602001820160405280156116e35781602001600182028036833780820191505090505b5090505f82602001820190505b600115611744578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161173957611738612bec565b5b0494505f85036116f0575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b80806117c057505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156118f2575f6117cf84611017565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561183957508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b801561184c575061184a8184610f20565b155b1561188e57826040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526004016118859190612082565b60405180910390fd5b81156118f057838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611952838383611cde565b611a05575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119c657806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016119bd9190612370565b60405180910390fd5b81816040517f177e802f0000000000000000000000000000000000000000000000000000000081526004016119fc929190612c19565b60405180910390fd5b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a7a575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611a719190612082565b60405180910390fd5b5f611a8683835f6110ef565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611af857816040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611aef9190612370565b60405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611b6c578382826040517f64283d7b000000000000000000000000000000000000000000000000000000008152600401611b6393929190612704565b60405180910390fd5b50505050565b611b7c8383611d9e565b611b885f8484846114bd565b505050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611be9577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611bdf57611bde612bec565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611c26576d04ee2d6d415b85acef81000000008381611c1c57611c1b612bec565b5b0492506020810190505b662386f26fc100008310611c5557662386f26fc100008381611c4b57611c4a612bec565b5b0492506010810190505b6305f5e1008310611c7e576305f5e1008381611c7457611c73612bec565b5b0492506008810190505b6127108310611ca3576127108381611c9957611c98612bec565b5b0492506004810190505b60648310611cc65760648381611cbc57611cbb612bec565b5b0492506002810190505b600a8310611cd5576001810190505b80915050919050565b5f5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d9557508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611d565750611d558484610f20565b5b80611d9457508273ffffffffffffffffffffffffffffffffffffffff16611d7c8361109d565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e0e575f6040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611e059190612082565b60405180910390fd5b5f611e1a83835f6110ef565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611e8c575f6040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600401611e839190612082565b60405180910390fd5b505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ed681611ea2565b8114611ee0575f5ffd5b50565b5f81359050611ef181611ecd565b92915050565b5f60208284031215611f0c57611f0b611e9a565b5b5f611f1984828501611ee3565b91505092915050565b5f8115159050919050565b611f3681611f22565b82525050565b5f602082019050611f4f5f830184611f2d565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f611f9782611f55565b611fa18185611f5f565b9350611fb1818560208601611f6f565b611fba81611f7d565b840191505092915050565b5f6020820190508181035f830152611fdd8184611f8d565b905092915050565b5f819050919050565b611ff781611fe5565b8114612001575f5ffd5b50565b5f8135905061201281611fee565b92915050565b5f6020828403121561202d5761202c611e9a565b5b5f61203a84828501612004565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61206c82612043565b9050919050565b61207c81612062565b82525050565b5f6020820190506120955f830184612073565b92915050565b6120a481612062565b81146120ae575f5ffd5b50565b5f813590506120bf8161209b565b92915050565b5f5f604083850312156120db576120da611e9a565b5b5f6120e8858286016120b1565b92505060206120f985828601612004565b9150509250929050565b5f5f5f6060848603121561211a57612119611e9a565b5b5f612127868287016120b1565b9350506020612138868287016120b1565b925050604061214986828701612004565b9150509250925092565b5f5f6040838503121561216957612168611e9a565b5b5f61217685828601612004565b9250506020612187858286016120b1565b9150509250929050565b5f5ffd5b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6121cf82611f7d565b810181811067ffffffffffffffff821117156121ee576121ed612199565b5b80604052505050565b5f612200611e91565b905061220c82826121c6565b919050565b5f67ffffffffffffffff82111561222b5761222a612199565b5b61223482611f7d565b9050602081019050919050565b828183375f83830152505050565b5f61226161225c84612211565b6121f7565b90508281526020810184848401111561227d5761227c612195565b5b612288848285612241565b509392505050565b5f82601f8301126122a4576122a3612191565b5b81356122b484826020860161224f565b91505092915050565b5f5f5f606084860312156122d4576122d3611e9a565b5b5f84013567ffffffffffffffff8111156122f1576122f0611e9e565b5b6122fd86828701612290565b935050602084013567ffffffffffffffff81111561231e5761231d611e9e565b5b61232a86828701612290565b925050604084013567ffffffffffffffff81111561234b5761234a611e9e565b5b61235786828701612290565b9150509250925092565b61236a81611fe5565b82525050565b5f6020820190506123835f830184612361565b92915050565b5f6020828403121561239e5761239d611e9a565b5b5f6123ab848285016120b1565b91505092915050565b5f6080820190506123c75f830187612073565b81810360208301526123d98186611f8d565b905081810360408301526123ed8185611f8d565b905081810360608301526124018184611f8d565b905095945050505050565b61241581611f22565b811461241f575f5ffd5b50565b5f813590506124308161240c565b92915050565b5f5f6040838503121561244c5761244b611e9a565b5b5f612459858286016120b1565b925050602061246a85828601612422565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6124a681611fe5565b82525050565b5f6124b7838361249d565b60208301905092915050565b5f602082019050919050565b5f6124d982612474565b6124e3818561247e565b93506124ee8361248e565b805f5b8381101561251e57815161250588826124ac565b9750612510836124c3565b9250506001810190506124f1565b5085935050505092915050565b5f6020820190508181035f83015261254381846124cf565b905092915050565b5f67ffffffffffffffff82111561256557612564612199565b5b61256e82611f7d565b9050602081019050919050565b5f61258d6125888461254b565b6121f7565b9050828152602081018484840111156125a9576125a8612195565b5b6125b4848285612241565b509392505050565b5f82601f8301126125d0576125cf612191565b5b81356125e084826020860161257b565b91505092915050565b5f5f5f5f6080858703121561260157612600611e9a565b5b5f61260e878288016120b1565b945050602061261f878288016120b1565b935050604061263087828801612004565b925050606085013567ffffffffffffffff81111561265157612650611e9e565b5b61265d878288016125bc565b91505092959194509250565b5f5f6040838503121561267f5761267e611e9a565b5b5f61268c858286016120b1565b925050602061269d858286016120b1565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806126eb57607f821691505b6020821081036126fe576126fd6126a7565b5b50919050565b5f6060820190506127175f830186612073565b6127246020830185612361565b6127316040830184612073565b949350505050565b7f596f7520617265206e6f7420746865206f776e6572206f6620746869732048615f8201527f696b752e00000000000000000000000000000000000000000000000000000000602082015250565b5f612793602483611f5f565b915061279e82612739565b604082019050919050565b5f6020820190508181035f8301526127c081612787565b9050919050565b5f81905092915050565b5f6127db82611f55565b6127e581856127c7565b93506127f5818560208601611f6f565b80840191505092915050565b5f61280c82846127d1565b915081905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026128737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612838565b61287d8683612838565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6128b86128b36128ae84611fe5565b612895565b611fe5565b9050919050565b5f819050919050565b6128d18361289e565b6128e56128dd826128bf565b848454612844565b825550505050565b5f5f905090565b6128fc6128ed565b6129078184846128c8565b505050565b5b8181101561292a5761291f5f826128f4565b60018101905061290d565b5050565b601f82111561296f5761294081612817565b61294984612829565b81016020851015612958578190505b61296c61296485612829565b83018261290c565b50505b505050565b5f82821c905092915050565b5f61298f5f1984600802612974565b1980831691505092915050565b5f6129a78383612980565b9150826002028217905092915050565b6129c082611f55565b67ffffffffffffffff8111156129d9576129d8612199565b5b6129e382546126d4565b6129ee82828561292e565b5f60209050601f831160018114612a1f575f8415612a0d578287015190505b612a17858261299c565b865550612a7e565b601f198416612a2d86612817565b5f5b82811015612a5457848901518255600182019150602085019450602081019050612a2f565b86831015612a715784890151612a6d601f891682612980565b8355505b6001600288020188555050505b505050505050565b7f4e6f4861696b75735368617265640000000000000000000000000000000000005f82015250565b5f612aba600e83611f5f565b9150612ac582612a86565b602082019050919050565b5f6020820190508181035f830152612ae781612aae565b9050919050565b5f612af982856127d1565b9150612b0582846127d1565b91508190509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f612b3582612b11565b612b3f8185612b1b565b9350612b4f818560208601611f6f565b612b5881611f7d565b840191505092915050565b5f608082019050612b765f830187612073565b612b836020830186612073565b612b906040830185612361565b8181036060830152612ba28184612b2b565b905095945050505050565b5f81519050612bbb81611ecd565b92915050565b5f60208284031215612bd657612bd5611e9a565b5b5f612be384828501612bad565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f604082019050612c2c5f830185612073565b612c396020830184612361565b939250505056fea2646970667358221220ee3533077ba9b09e8e2c87eba41045ce90552ad146d54490db9e27789fad8d9e64736f6c634300081b0033