608060405234801561000f575f80fd5b506040518060400160405280600881526020017f4861696b754e46540000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4841494b55000000000000000000000000000000000000000000000000000000815250815f908161008a9190610308565b50806001908161009a9190610308565b50505060016006819055506100b560096100ba60201b60201c565b6103d7565b6001815f015f828254019250508190555050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061014957607f821691505b60208210810361015c5761015b610105565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026101be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610183565b6101c88683610183565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61020c610207610202846101e0565b6101e9565b6101e0565b9050919050565b5f819050919050565b610225836101f2565b61023961023182610213565b84845461018f565b825550505050565b5f90565b61024d610241565b61025881848461021c565b505050565b5b8181101561027b576102705f82610245565b60018101905061025e565b5050565b601f8211156102c05761029181610162565b61029a84610174565b810160208510156102a9578190505b6102bd6102b585610174565b83018261025d565b50505b505050565b5f82821c905092915050565b5f6102e05f19846008026102c5565b1980831691505092915050565b5f6102f883836102d1565b9150826002028217905092915050565b610311826100ce565b67ffffffffffffffff81111561032a576103296100d8565b5b6103348254610132565b61033f82828561027f565b5f60209050601f831160018114610370575f841561035e578287015190505b61036885826102ed565b8655506103cf565b601f19841661037e86610162565b5f5b828110156103a557848901518255600182019150602085019450602081019050610380565b868310156103c257848901516103be601f8916826102d1565b8355505b6001600288020188555050505b505050505050565b6134e6806103e45f395ff3fe608060405234801561000f575f80fd5b506004361061012a575f3560e01c806370a08231116100ab57806397afe82d1161006f57806397afe82d14610356578063a22cb46514610386578063b88d4fde146103a2578063c87b56dd146103be578063e985e9c5146103ee5761012a565b806370a08231146102865780637cb82b2a146102b65780637dae0276146102ea5780638e667f571461030857806395d89b41146103385761012a565b80632c83ea56116100f25780632c83ea56146101e4578063350fe1651461020057806342842e0e1461021c57806349af5bfe146102385780636352211e146102565761012a565b806301ffc9a71461012e57806306fdde031461015e578063081812fc1461017c578063095ea7b3146101ac57806323b872dd146101c8575b5f80fd5b6101486004803603810190610143919061255e565b61041e565b60405161015591906125a3565b60405180910390f35b6101666104ff565b604051610173919061262c565b60405180910390f35b6101966004803603810190610191919061267f565b61058e565b6040516101a391906126e9565b60405180910390f35b6101c660048036038101906101c1919061272c565b6105a9565b005b6101e260048036038101906101dd919061276a565b6105bf565b005b6101fe60048036038101906101f991906127ba565b6106be565b005b61021a60048036038101906102159190612924565b6108b5565b005b6102366004803603810190610231919061276a565b610b83565b005b610240610ba2565b60405161024d9190612b6a565b60405180910390f35b610270600480360381019061026b919061267f565b610faf565b60405161027d91906126e9565b60405180910390f35b6102a0600480360381019061029b9190612b8a565b610fc0565b6040516102ad9190612bc4565b60405180910390f35b6102d060048036038101906102cb919061267f565b611076565b6040516102e1959493929190612bdd565b60405180910390f35b6102f2611268565b6040516102ff9190612bc4565b60405180910390f35b610322600480360381019061031d919061267f565b611274565b60405161032f9190612cc4565b60405180910390f35b610340611512565b60405161034d919061262c565b60405180910390f35b610370600480360381019061036b919061272c565b6115a2565b60405161037d9190612bc4565b60405180910390f35b6103a0600480360381019061039b9190612d0e565b6115cd565b005b6103bc60048036038101906103b79190612dea565b6115e3565b005b6103d860048036038101906103d3919061267f565b611608565b6040516103e5919061262c565b60405180910390f35b61040860048036038101906104039190612e6a565b61166e565b60405161041591906125a3565b60405180910390f35b5f7f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104e857507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104f857506104f7826116fc565b5b9050919050565b60605f805461050d90612ed5565b80601f016020809104026020016040519081016040528092919081815260200182805461053990612ed5565b80156105845780601f1061055b57610100808354040283529160200191610584565b820191905f5260205f20905b81548152906001019060200180831161056757829003601f168201915b5050505050905090565b5f61059882611765565b506105a2826117eb565b9050919050565b6105bb82826105b6611824565b61182b565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361062f575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161062691906126e9565b60405180910390fd5b5f610642838361063d611824565b61183d565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106b8578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016106af93929190612f05565b60405180910390fd5b50505050565b6106c6611a48565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361072b576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007805490508210158061073e57505f82145b15610775576040517f46e956db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1661079583610faf565b73ffffffffffffffffffffffffffffffffffffffff16146107ed57816040517f03ce4e320000000000000000000000000000000000000000000000000000000081526004016107e49190612bc4565b60405180910390fd5b60085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2082908060018154018082558091505060019003905f5260205f20015f90919091909150558073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16837f16916ab32e25ab761bcf573ef638e51a5596c821e120e4a3b981ba1012f0d72260405160405180910390a46108b1611a97565b5050565b6108bd611a48565b8282825f835114806108cf57505f8251145b806108da57505f8151145b15610911576040517f1b0fd7ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f86868660405160200161092793929190612f74565b604051602081830303815290604052805190602001209050600a816040516020016109529190612fcd565b60405160208183030381529060405260405161096e9190612fe7565b90815260200160405180910390205f9054906101000a900460ff16156109c0576040517f693a889e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6109cb6009611aa1565b90506109d73382611aad565b60076040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018a815260200189815260200188815260200142815250908060018154018082558091505060019003905f5260205f2090600502015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001019081610a95919061319a565b506040820151816002019081610aab919061319a565b506060820151816003019081610ac1919061319a565b506080820151816004015550506001600a83604051602001610ae39190612fcd565b604051602081830303815290604052604051610aff9190612fe7565b90815260200160405180910390205f6101000a81548160ff021916908315150217905550610b2d6009611aca565b3373ffffffffffffffffffffffffffffffffffffffff16817fcc6f3cbde5f018df373f90d0662aae2f104227c7e6c2e5409f690a9d0ae2f36f60405160405180910390a35050505050610b7e611a97565b505050565b610b9d83838360405180602001604052805f8152506115e3565b505050565b60605f60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610c2a57602002820191905f5260205f20905b815481526020019060010190808311610c16575b505050505090505f815103610c6b576040517ff8826a6900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815167ffffffffffffffff811115610c8757610c86612800565b5b604051908082528060200260200182016040528015610cc057816020015b610cad6124b5565b815260200190600190039081610ca55790505b5090505f5b8251811015610fa6575f838281518110610ce257610ce1613269565b5b6020026020010151118015610d165750600780549050838281518110610d0b57610d0a613269565b5b602002602001015111155b15610f995760076001848381518110610d3257610d31613269565b5b6020026020010151610d4491906132c3565b81548110610d5557610d54613269565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182018054610dd090612ed5565b80601f0160208091040260200160405190810160405280929190818152602001828054610dfc90612ed5565b8015610e475780601f10610e1e57610100808354040283529160200191610e47565b820191905f5260205f20905b815481529060010190602001808311610e2a57829003601f168201915b50505050508152602001600282018054610e6090612ed5565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8c90612ed5565b8015610ed75780601f10610eae57610100808354040283529160200191610ed7565b820191905f5260205f20905b815481529060010190602001808311610eba57829003601f168201915b50505050508152602001600382018054610ef090612ed5565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1c90612ed5565b8015610f675780601f10610f3e57610100808354040283529160200191610f67565b820191905f5260205f20905b815481529060010190602001808311610f4a57829003601f168201915b50505050508152602001600482015481525050828281518110610f8d57610f8c613269565b5b60200260200101819052505b8080600101915050610cc5565b50809250505090565b5f610fb982611765565b9050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611031575f6040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161102891906126e9565b60405180910390fd5b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60078181548110611085575f80fd5b905f5260205f2090600502015f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010180546110c990612ed5565b80601f01602080910402602001604051908101604052809291908181526020018280546110f590612ed5565b80156111405780601f1061111757610100808354040283529160200191611140565b820191905f5260205f20905b81548152906001019060200180831161112357829003601f168201915b50505050509080600201805461115590612ed5565b80601f016020809104026020016040519081016040528092919081815260200182805461118190612ed5565b80156111cc5780601f106111a3576101008083540402835291602001916111cc565b820191905f5260205f20905b8154815290600101906020018083116111af57829003601f168201915b5050505050908060030180546111e190612ed5565b80601f016020809104026020016040519081016040528092919081815260200182805461120d90612ed5565b80156112585780601f1061122f57610100808354040283529160200191611258565b820191905f5260205f20905b81548152906001019060200180831161123b57829003601f168201915b5050505050908060040154905085565b5f600780549050905090565b61127c6124b5565b6007805490508210158061128f57505f82145b156112c6576040517f46e956db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60076001836112d591906132c3565b815481106112e6576112e5613269565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201805461136190612ed5565b80601f016020809104026020016040519081016040528092919081815260200182805461138d90612ed5565b80156113d85780601f106113af576101008083540402835291602001916113d8565b820191905f5260205f20905b8154815290600101906020018083116113bb57829003601f168201915b505050505081526020016002820180546113f190612ed5565b80601f016020809104026020016040519081016040528092919081815260200182805461141d90612ed5565b80156114685780601f1061143f57610100808354040283529160200191611468565b820191905f5260205f20905b81548152906001019060200180831161144b57829003601f168201915b5050505050815260200160038201805461148190612ed5565b80601f01602080910402602001604051908101604052809291908181526020018280546114ad90612ed5565b80156114f85780601f106114cf576101008083540402835291602001916114f8565b820191905f5260205f20905b8154815290600101906020018083116114db57829003601f168201915b505050505081526020016004820154815250509050919050565b60606001805461152190612ed5565b80601f016020809104026020016040519081016040528092919081815260200182805461154d90612ed5565b80156115985780601f1061156f57610100808354040283529160200191611598565b820191905f5260205f20905b81548152906001019060200180831161157b57829003601f168201915b5050505050905090565b6008602052815f5260405f2081815481106115bb575f80fd5b905f5260205f20015f91509150505481565b6115df6115d8611824565b8383611ade565b5050565b6115ee8484846105bf565b6116026115f9611824565b85858585611c47565b50505050565b606061161382611765565b505f61161d611df3565b90505f81511161163b5760405180602001604052805f815250611666565b8061164584611e09565b6040516020016116569291906132f6565b6040516020818303038152906040525b915050919050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f8061177083611ed3565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117e257826040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016117d99190612bc4565b60405180910390fd5b80915050919050565b5f60045f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b5f33905090565b6118388383836001611f0c565b505050565b5f8061184884611ed3565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611889576118888184866120cb565b5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611914576118c85f855f80611f0c565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055505b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461199357600160035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8460025f8681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b600260065403611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8490613363565b60405180910390fd5b6002600681905550565b6001600681905550565b5f815f01549050919050565b611ac6828260405180602001604052805f81525061218e565b5050565b6001815f015f828254019250508190555050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b4e57816040517f5b08ba18000000000000000000000000000000000000000000000000000000008152600401611b4591906126e9565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611c3a91906125a3565b60405180910390a3505050565b5f8373ffffffffffffffffffffffffffffffffffffffff163b1115611dec578273ffffffffffffffffffffffffffffffffffffffff1663150b7a02868685856040518563ffffffff1660e01b8152600401611ca594939291906133d3565b6020604051808303815f875af1925050508015611ce057506040513d601f19601f82011682018060405250810190611cdd9190613431565b60015b611d61573d805f8114611d0e576040519150601f19603f3d011682016040523d82523d5f602084013e611d13565b606091505b505f815103611d5957836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611d5091906126e9565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611dea57836040517f64a0ae92000000000000000000000000000000000000000000000000000000008152600401611de191906126e9565b60405180910390fd5b505b5050505050565b606060405180602001604052805f815250905090565b60605f6001611e17846121b1565b0190505f8167ffffffffffffffff811115611e3557611e34612800565b5b6040519080825280601f01601f191660200182016040528015611e675781602001600182028036833780820191505090505b5090505f82602001820190505b600115611ec8578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611ebd57611ebc61345c565b5b0494505f8503611e74575b819350505050919050565b5f60025f8381526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611f4457505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15612076575f611f5384611765565b90505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611fbd57508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611fd05750611fce818461166e565b155b1561201257826040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815260040161200991906126e9565b60405180910390fd5b811561207457838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b8360045f8581526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b6120d6838383612302565b612189575f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361214a57806040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016121419190612bc4565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401612180929190613489565b60405180910390fd5b505050565b61219883836123c2565b6121ac6121a3611824565b5f858585611c47565b505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061220d577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816122035761220261345c565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061224a576d04ee2d6d415b85acef810000000083816122405761223f61345c565b5b0492506020810190505b662386f26fc10000831061227957662386f26fc10000838161226f5761226e61345c565b5b0492506010810190505b6305f5e10083106122a2576305f5e10083816122985761229761345c565b5b0492506008810190505b61271083106122c75761271083816122bd576122bc61345c565b5b0492506004810190505b606483106122ea57606483816122e0576122df61345c565b5b0492506002810190505b600a83106122f9576001810190505b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156123b957508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061237a5750612379848461166e565b5b806123b857508273ffffffffffffffffffffffffffffffffffffffff166123a0836117eb565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612432575f6040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161242991906126e9565b60405180910390fd5b5f61243e83835f61183d565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146124b0575f6040517f73c6ac6e0000000000000000000000000000000000000000000000000000000081526004016124a791906126e9565b60405180910390fd5b505050565b6040518060a001604052805f73ffffffffffffffffffffffffffffffffffffffff1681526020016060815260200160608152602001606081526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61253d81612509565b8114612547575f80fd5b50565b5f8135905061255881612534565b92915050565b5f6020828403121561257357612572612501565b5b5f6125808482850161254a565b91505092915050565b5f8115159050919050565b61259d81612589565b82525050565b5f6020820190506125b65f830184612594565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6125fe826125bc565b61260881856125c6565b93506126188185602086016125d6565b612621816125e4565b840191505092915050565b5f6020820190508181035f83015261264481846125f4565b905092915050565b5f819050919050565b61265e8161264c565b8114612668575f80fd5b50565b5f8135905061267981612655565b92915050565b5f6020828403121561269457612693612501565b5b5f6126a18482850161266b565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6126d3826126aa565b9050919050565b6126e3816126c9565b82525050565b5f6020820190506126fc5f8301846126da565b92915050565b61270b816126c9565b8114612715575f80fd5b50565b5f8135905061272681612702565b92915050565b5f806040838503121561274257612741612501565b5b5f61274f85828601612718565b92505060206127608582860161266b565b9150509250929050565b5f805f6060848603121561278157612780612501565b5b5f61278e86828701612718565b935050602061279f86828701612718565b92505060406127b08682870161266b565b9150509250925092565b5f80604083850312156127d0576127cf612501565b5b5f6127dd8582860161266b565b92505060206127ee85828601612718565b9150509250929050565b5f80fd5b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612836826125e4565b810181811067ffffffffffffffff8211171561285557612854612800565b5b80604052505050565b5f6128676124f8565b9050612873828261282d565b919050565b5f67ffffffffffffffff82111561289257612891612800565b5b61289b826125e4565b9050602081019050919050565b828183375f83830152505050565b5f6128c86128c384612878565b61285e565b9050828152602081018484840111156128e4576128e36127fc565b5b6128ef8482856128a8565b509392505050565b5f82601f83011261290b5761290a6127f8565b5b813561291b8482602086016128b6565b91505092915050565b5f805f6060848603121561293b5761293a612501565b5b5f84013567ffffffffffffffff81111561295857612957612505565b5b612964868287016128f7565b935050602084013567ffffffffffffffff81111561298557612984612505565b5b612991868287016128f7565b925050604084013567ffffffffffffffff8111156129b2576129b1612505565b5b6129be868287016128f7565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6129fa816126c9565b82525050565b5f82825260208201905092915050565b5f612a1a826125bc565b612a248185612a00565b9350612a348185602086016125d6565b612a3d816125e4565b840191505092915050565b612a518161264c565b82525050565b5f60a083015f830151612a6c5f8601826129f1565b5060208301518482036020860152612a848282612a10565b91505060408301518482036040860152612a9e8282612a10565b91505060608301518482036060860152612ab88282612a10565b9150506080830151612acd6080860182612a48565b508091505092915050565b5f612ae38383612a57565b905092915050565b5f602082019050919050565b5f612b01826129c8565b612b0b81856129d2565b935083602082028501612b1d856129e2565b805f5b85811015612b585784840389528151612b398582612ad8565b9450612b4483612aeb565b925060208a01995050600181019050612b20565b50829750879550505050505092915050565b5f6020820190508181035f830152612b828184612af7565b905092915050565b5f60208284031215612b9f57612b9e612501565b5b5f612bac84828501612718565b91505092915050565b612bbe8161264c565b82525050565b5f602082019050612bd75f830184612bb5565b92915050565b5f60a082019050612bf05f8301886126da565b8181036020830152612c0281876125f4565b90508181036040830152612c1681866125f4565b90508181036060830152612c2a81856125f4565b9050612c396080830184612bb5565b9695505050505050565b5f60a083015f830151612c585f8601826129f1565b5060208301518482036020860152612c708282612a10565b91505060408301518482036040860152612c8a8282612a10565b91505060608301518482036060860152612ca48282612a10565b9150506080830151612cb96080860182612a48565b508091505092915050565b5f6020820190508181035f830152612cdc8184612c43565b905092915050565b612ced81612589565b8114612cf7575f80fd5b50565b5f81359050612d0881612ce4565b92915050565b5f8060408385031215612d2457612d23612501565b5b5f612d3185828601612718565b9250506020612d4285828601612cfa565b9150509250929050565b5f67ffffffffffffffff821115612d6657612d65612800565b5b612d6f826125e4565b9050602081019050919050565b5f612d8e612d8984612d4c565b61285e565b905082815260208101848484011115612daa57612da96127fc565b5b612db58482856128a8565b509392505050565b5f82601f830112612dd157612dd06127f8565b5b8135612de1848260208601612d7c565b91505092915050565b5f805f8060808587031215612e0257612e01612501565b5b5f612e0f87828801612718565b9450506020612e2087828801612718565b9350506040612e318782880161266b565b925050606085013567ffffffffffffffff811115612e5257612e51612505565b5b612e5e87828801612dbd565b91505092959194509250565b5f8060408385031215612e8057612e7f612501565b5b5f612e8d85828601612718565b9250506020612e9e85828601612718565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612eec57607f821691505b602082108103612eff57612efe612ea8565b5b50919050565b5f606082019050612f185f8301866126da565b612f256020830185612bb5565b612f3260408301846126da565b949350505050565b5f81905092915050565b5f612f4e826125bc565b612f588185612f3a565b9350612f688185602086016125d6565b80840191505092915050565b5f612f7f8286612f44565b9150612f8b8285612f44565b9150612f978284612f44565b9150819050949350505050565b5f819050919050565b5f819050919050565b612fc7612fc282612fa4565b612fad565b82525050565b5f612fd88284612fb6565b60208201915081905092915050565b5f612ff28284612f44565b915081905092915050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026130597fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261301e565b613063868361301e565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61309e6130996130948461264c565b61307b565b61264c565b9050919050565b5f819050919050565b6130b783613084565b6130cb6130c3826130a5565b84845461302a565b825550505050565b5f90565b6130df6130d3565b6130ea8184846130ae565b505050565b5b8181101561310d576131025f826130d7565b6001810190506130f0565b5050565b601f8211156131525761312381612ffd565b61312c8461300f565b8101602085101561313b578190505b61314f6131478561300f565b8301826130ef565b50505b505050565b5f82821c905092915050565b5f6131725f1984600802613157565b1980831691505092915050565b5f61318a8383613163565b9150826002028217905092915050565b6131a3826125bc565b67ffffffffffffffff8111156131bc576131bb612800565b5b6131c68254612ed5565b6131d1828285613111565b5f60209050601f831160018114613202575f84156131f0578287015190505b6131fa858261317f565b865550613261565b601f19841661321086612ffd565b5f5b8281101561323757848901518255600182019150602085019450602081019050613212565b868310156132545784890151613250601f891682613163565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6132cd8261264c565b91506132d88361264c565b92508282039050818111156132f0576132ef613296565b5b92915050565b5f6133018285612f44565b915061330d8284612f44565b91508190509392505050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f61334d601f836125c6565b915061335882613319565b602082019050919050565b5f6020820190508181035f83015261337a81613341565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f6133a582613381565b6133af818561338b565b93506133bf8185602086016125d6565b6133c8816125e4565b840191505092915050565b5f6080820190506133e65f8301876126da565b6133f360208301866126da565b6134006040830185612bb5565b8181036060830152613412818461339b565b905095945050505050565b5f8151905061342b81612534565b92915050565b5f6020828403121561344657613445612501565b5b5f6134538482850161341d565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f60408201905061349c5f8301856126da565b6134a96020830184612bb5565b939250505056fea26469706673582212208ec9881bcddb806fb77ee90c52850bbefaf43e5d231541876c588336b1d73d6864736f6c634300081a0033